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;
}
这是我写的程序,到底错哪了啊,运行出来是这个样子的 小巧玲珑!
#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;
} 做最好的自己520 发表于 2021-7-1 17:08
小巧玲珑!
如果输入为A呢 #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;
} lei1996 发表于 2021-7-1 18:11
putchar 和 printf有什么区别呢?为什么putchar不适合输出整数,我记得之前课上老师也是那它输出1,2,3.。。的啊 善用百度 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]