马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 Cathy-Chen258 于 2021-2-1 17:01 编辑
参考答案:#include <stdio.h>
int main()
{
int num = 0;
long sum = 0L; // 0L表示类型为long的0
int status;
do
{
printf("请输入合法的数字:");
sum = sum + num;
status = scanf("%d", &num);
} while(status == 1);
printf("结果是:%ld\n", sum);
return 0;
}
我的答案:#include <stdio.h>
int main()
{
char word;int sum=0;
printf("请输入合法的数字:");
scanf("%c",&word);
while(word>='0'&&word<='9')
{
sum=sum+word;
printf("请输入合法的数字:");
scanf("%c\n",&word);
}
printf("结果是:%d",sum);
return 0;
}
为什么我的运行是错误的,我的思路是先输入第一个数字进入循环,然后后面的数字在循环内,直到输入其他字符再退出循环,打印总和结果
但是我虽然理解参考答案,但我想知道自己哪错了,谢谢各位网友们可以帮我看看吗?^_^
应该这样做,才能达到你的本意: #include <stdio.h>
int main()
{
char word;
int sum = 0;
printf("请输入合法的数字:");
scanf("%c", &word);
getchar(); // 吸收回车键
while (word >= '0'&& word <= '9')
{
sum = sum + word - '0'; // 将字符型数字转换为整型数字
printf("请输入合法的数字:");
scanf("%c", &word); // 去掉输入控制的回车键
getchar(); // 吸收回车键
}
printf("结果是:%d", sum);
return 0;
}
|