林江楠 发表于 2021-10-16 15:48:55

小甲鱼c语言课后作业sle14

写一个程序,对用户输入的整数进行求和,输入一个字符结束
#include <stdio.h>

int main()
{
        int num = 0;
        int ch;
       
        while(1)
        {
                printf("请输入合法的数字:");
                ch = getchar();
                if(ch >= '0' && ch <= '9')
                {
                        num = num + ch;
                }
                else
                {
                        break;
                }
        }
        printf("结果是:%d",num);
       
        return 0;
}为什么这个程序不行

Krant5 发表于 2021-10-16 16:58:00

字符 '0'和 数字0 对应的ascii值是不一样的,不能直接用来做加法,输入时候可以使用scanf或者 你将getchar的后的字符转化成数字,比如:ch = ch + 0 - '0'

大马强 发表于 2021-10-16 17:14:15

楼上说的https://static01.imgkr.com/temp/e19506d2acd141f6bb3d08d7285d917c.png
页: [1]
查看完整版本: 小甲鱼c语言课后作业sle14