循环do while的应用
本帖最后由 fatbug18 于 2016-8-3 12:53 编辑#include <stdio.h>
int main()
{
int num;
int sum = 0;
printf("请输入合法字符:");
num = getchar();
while(48<='num'&&'num'<=57)
{
sum = sum + num;
}
printf("结果是:%d", sum);
return 0;
}
我想把输入的所有数字都加在一起,遇到不是数字的任何字符就会直接退出循环然后打印加出来的值
但是它会显示multi-character character constant
而且无论输入什么都会直接退出循环
求解 你应该加数字的值,不是加ASCII码
循环里面num不需要加'' 了解一下ascii和单引号的应用
'a'==97=='\141' num变量存放的是 字符的ASCII值。没必要在用‘num’了 #include <stdio.h>
int main()
{
int num;
int sum = 0;
printf("请输入合法字符:");
num = getchar();
while('0'<=num && num<='9')
{
printf("请输入合法字符:");
sum = sum + num;
num = getchar();
}
printf("结果是:%d", sum);
return 0;
}
那为什么我改成这样子的时候,假如我在一开始输入的是1,他就直接跳出循环打印结果是:49.
这个不是1的ASCII码吗?,为什么会这样子的? #include <stdio.h>
int main()
{
int num = 0,i = 0;
while(scanf("%d",&i) == 1)
{
num = num + i;
}
printf("%d\n",num);
return 0;
}
这样试看看,没怎么调试过,你自己调试下看有没有错误。 廿文廿武 发表于 2016-8-3 13:07
这样试看看,没怎么调试过,你自己调试下看有没有错误。
为什么我那种不行的?我的思路就是用ASCII码来判断他输入的是否0~9的这几个数字,不是的话就跳出,请问我哪里出了错误了 楼上的都说了啊,'0'为char和0为int,你这个是两种不同类型的比较。加单引号''和没单引号的区别。 谢谢各位 看看
页:
[1]