答案:
#include <stdio.h>
#include <string.h>
#define MAX 51 //该定义宏为字符串最大长度
int main()
{
char arr[MAX] = { 0 };
gets(arr); //读取存给arr
int len = 0, i = 0, num = 0;
len = strlen(arr); //len代表字符串长度
for (i = 0; i < len; i++) //从字符串下标为0的元素一直到字符串最后一个元素,一个一个进入循环
{
if (arr[i] >= '0' && arr[i] <= '9') //如果该元素是数字
num = num * 10 + (arr[i] - '0'); //加入给num,并让之前的数字前移一位(即*10)
else if (arr[i] == ' ') //如果该元素是空格
num = num * 10 + 0; //直接让之前的数字前移一位
}
if (num % 3 == 0) //如果能被3整除
printf("%d,yes", num);
else //如果不能被3整除
printf("%d,no", num);
return 0;
}
注:vs现在已经不支持gets函数了,因为gets函数不管你输入的是否超出数组的最大存储量,都一股脑给你放进去,所以很容易导致数组越界,认为该函数很危险。因此现在更多用gets_s代替gets