|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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;
- }
复制代码
|
|