|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 如果孤独感 于 2020-3-31 22:50 编辑
为什么编译成功后输入1后结果是从65加起
- #include <stdio.h>
- int main()
- {
- int ch, in, sum = 0, n;
- printf("请输入合法数字(多次输入求和):");
- ch = getchar();
- getchar();
- for (; ch >= '0' && ch <= '9'; sum += (ch - '0'))
- {
- printf("请输入合法数字:");
- ch = getchar();
- getchar();
- }
- printf("结果是:%d\n", sum);
- return 0;
- }
复制代码
你在最后输入字符结束循环的时候输入字符所代表的值比‘0’大的值也被加到了sum里
你是输入q来结束对于程序来说就是1没了然后q变成新的ch计算后发现之前输入的ch不符合循环要求
最后结束循环,计算的值就错了
如果你换a来结束就变成49加起
把sum += (ch - '0')要放在循环第一个这样你输入的第一个数就不会被丢弃,而输入字符的值也不会在判定前就加给sum
|
|