18234075077 发表于 2021-7-1 16:30:12

S1E14动手1



#include <stdio.h>
int main()
{
        int i,sum;
        sum=0;
        do
        {
                printf("请输入合法的数字:");
                i=getchar();
                sum=sum+i-'0';
        }
        while(i>='0'&&i<='9');
        putchar(sum);
       
        return 0;
}

这是我写的程序,到底错哪了啊,运行出来是这个样子的

做最好的自己520 发表于 2021-7-1 17:08:51

小巧玲珑!
#include <stdio.h>

int main()
{
      int num = 0;
      int sum = 0;
      int status;

      do
      {
                printf("请输入合法的数字:");
                sum = sum + num;   //计数
                /*因为 scanf 函数会返回成功接收字符的个数,
                                只需检查每次调用 scanf 函数的返回值是否为 1 即可*/
                status = scanf("%d", &num);
               
      } while(status == 1);//如果为1跳出循环

      printf("结果是:%d\n", sum);

      return 0;
}

18234075077 发表于 2021-7-1 17:51:05

做最好的自己520 发表于 2021-7-1 17:08
小巧玲珑!

如果输入为A呢

lei1996 发表于 2021-7-1 18:11:47

#include <stdio.h>
int main()
{
        char i = '0';   //设置变量i类型为char因为下面要用到getchar()函数范围类型为char
        int sum;
        sum = 0;
        do               //如果用dowhile的话要调整顺序为下面代码
        {
                sum = sum + i - '0';
                printf("请输入合法的数字:");
                i = getchar();                   //获取输入的字符
                getchar();                     //获取输入字母后的   回车
        } while (i >= '0'&&i <= '9');
        //putchar(sum);             //puchar()函数不适合输出整数所以采用printf()作为显示
        printf("%d", sum);

        return 0;
}

18234075077 发表于 2021-7-2 10:02:46

lei1996 发表于 2021-7-1 18:11


putchar 和 printf有什么区别呢?为什么putchar不适合输出整数,我记得之前课上老师也是那它输出1,2,3.。。的啊

lei1996 发表于 2021-7-2 14:46:51

善用百度 https://zhuanlan.zhihu.com/p/161237789
你从puchar能看出来putchar 的适用对象是字符数据而且一个putchar只能输出一个字符并且当你输入为介于0~127(包括0及127)之间的十进制整型数时,(此时没有单引号引起来)它会被视为对应字符的ASCII代码,输出该ASCII代码对应的字符这就会导致你想输出
sum为33它会转化为ASCII码对应的 ‘!’
我记得之前课上老师也是那它输出1,2,3.。。的啊   如果是用puchar输出1,2,3 。。那它最多能输出数字0-9   对于两位数的整数一个puchar根本不能显示出来所以用了printf函数这函数一学c就应该会接触到    不懂也可以自行百度
页: [1]
查看完整版本: S1E14动手1