小甲鱼S1E14课后题里的动手第一题
这是题目
#include<stdio.h>
int main()
{
int num;
int sum=0;
{:10_266:}
}
while((num>='0')||(num<='9')||(num!='\n'));
printf("结果为:%d",sum);
return 0;
}
{:10_266:} 为什么实现不了{:10_266:} 我好菜{:10_266:} #include<stdio.h>
int main()
{
int num;
int sum=0;
do
{
printf("请输入合法的数字:");
scanf("%d",&num);
sum=sum+num;
}
while((num>='0')||(num<='9')||(num!='\n'));
printf("结果为:%d",sum);
return 0;
} 本帖最后由 jhq999 于 2022-3-5 12:35 编辑
RayLee1 发表于 2022-3-5 12:29
#include<stdio.h>
int main()
{
int num=0;//////////
int sum=0;
do
{
printf("请输入合法的数字:");
sum=sum+num;////////////
scanf("%d",&num);
}
while((num>='0')||(num<='9')||(num!='\n'));
printf("结果为:%d",sum);
return 0;
} 本帖最后由 jackz007 于 2022-3-5 12:56 编辑
#include <stdio.h>
int main(void)
{
char c ;
int e ;
for(e = 0 ;;) {
printf("请输入合法数字 : ") ;
c = getchar() - '0' ;
fflush(stdin) ;
if(c >= 0 && c <= 9) e += c ;
else break ;
}
printf("结果为:%d\n" , e) ;
} jackz007 发表于 2022-3-5 12:54
大佬,变成这样了我靠
RayLee1 发表于 2022-3-5 18:27
大佬,变成这样了我靠
你不会搞错了吧,在我这里是这样:
D:\\C>g++ -o x x.c
D:\\C>x
请输入合法数字 : 5
请输入合法数字 : 4
请输入合法数字 : 3
请输入合法数字 : 2
请输入合法数字 : 1
请输入合法数字 : x
15
D:\\C> jackz007 发表于 2022-3-5 18:49
你不会搞错了吧,在我这里是这样:
应该是回复我
int num=0,ret=0;//////////
int sum=0;
do
{
printf("请输入合法的数字:");
sum=sum+num;////////////
ret=scanf("%d",&num);
}while(ret);
printf("结果为:%d",sum);
return 0; jhq999 发表于 2022-3-5 18:59
应该是回复我
对对对,谢谢大佬 #include<stdio.h>
unsigned int i,ch,ch1,count=0,count1=0;//count为最终结果,count1为每次读入整数
int main() //思路:1、读入所有字符,判断是否合法。2、计算每次输入全部整数。3、加到最后结果里。
{
while(1)
{
printf("请输入合法的数字:");
do
{
ch=getchar();
if(ch>='0'&&ch<='9') //是数字的时候
{
count1=10*count1+ch-'0';//读取十进制数字
}
else //不是数字的话,跳出去
{
ch1=ch; //为了后面区分回车还是字母用临时变量
break;
}
}
while (ch!='\n');
count=count+count1;
if(ch1=='\n') //如果是回车,返回循环
;
else break;//如果不是回车,也不是数字,退出循环
count1=0; //单独一次循环的中间变量重置0
}
printf("结果是:%d\n",count);
return 0;
}
我这个可以不只是输入个位数。验证了可以输入多位数。{:5_109:}
页:
[1]