鱼C论坛

 找回密码
 立即注册
查看: 2746|回复: 9

小甲鱼S1E14课后题里的动手第一题

[复制链接]
发表于 2022-3-5 12:26:41 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
屏幕截图 2022-03-05 122051.png
这是题目
  1. #include<stdio.h>
  2. int main()
  3. {
  4.         int num;
  5.         int sum=0;
  6.         {:10_266:}
  7.        
  8.                 }
  9.                 while((num>='0')||(num<='9')||(num!='\n'));
  10.                
  11.                
  12.                
  13.         printf("结果为:%d",sum);
  14.        
  15.         return 0;
  16. }
复制代码

为什么实现不了 我好菜
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-3-5 12:29:14 | 显示全部楼层
  1. #include<stdio.h>
  2. int main()
  3. {
  4.         int num;
  5.         int sum=0;
  6.        
  7.          
  8.                 do
  9.                 {
  10.                         printf("请输入合法的数字:");
  11.                         scanf("%d",&num);
  12.        
  13.                         sum=sum+num;
  14.        
  15.                 }
  16.                 while((num>='0')||(num<='9')||(num!='\n'));
  17.                
  18.                
  19.                
  20.         printf("结果为:%d",sum);
  21.        
  22.         return 0;
  23. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-3-5 12:32:14 | 显示全部楼层
本帖最后由 jhq999 于 2022-3-5 12:35 编辑

  1. #include<stdio.h>
  2. int main()
  3. {
  4.         int num=0;//////////
  5.         int sum=0;
  6.         
  7.          
  8.                 do
  9.                 {
  10.                         printf("请输入合法的数字:");
  11.                         sum=sum+num;////////////
  12.                         scanf("%d",&num);
  13.         
  14.                         
  15.         
  16.                 }
  17.                 while((num>='0')||(num<='9')||(num!='\n'));
  18.                
  19.                
  20.                
  21.         printf("结果为:%d",sum);
  22.         
  23.         return 0;
  24. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-3-5 12:54:08 | 显示全部楼层
本帖最后由 jackz007 于 2022-3-5 12:56 编辑
  1. #include <stdio.h>

  2. int main(void)
  3. {
  4.         char c                              ;
  5.         int e                               ;
  6.         for(e = 0 ;;) {
  7.                 printf("请输入合法数字 : ") ;
  8.                 c = getchar() - '0'         ;
  9.                 fflush(stdin)               ;
  10.                 if(c >= 0 && c <= 9) e += c ;
  11.                 else break                  ;
  12.         }
  13.         printf("结果为:%d\n" , e)          ;
  14. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-3-5 18:27:33 | 显示全部楼层

大佬,变成这样了我靠
屏幕截图 2022-03-05 182523.png
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-3-5 18:49:00 | 显示全部楼层
RayLee1 发表于 2022-3-5 18:27
大佬,变成这样了我靠

        你不会搞错了吧,在我这里是这样:
  1. D:\[00.Exerciese.2022]\C>g++ -o x x.c

  2. D:\[00.Exerciese.2022]\C>x
  3. 请输入合法数字 : 5
  4. 请输入合法数字 : 4
  5. 请输入合法数字 : 3
  6. 请输入合法数字 : 2
  7. 请输入合法数字 : 1
  8. 请输入合法数字 : x
  9. 15

  10. D:\[00.Exerciese.2022]\C>
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-3-5 18:59:32 | 显示全部楼层
jackz007 发表于 2022-3-5 18:49
你不会搞错了吧,在我这里是这样:

应该是回复我

  1.         int num=0,ret=0;//////////
  2.         int sum=0;
  3.         
  4.          
  5.                 do
  6.                 {
  7.                         printf("请输入合法的数字:");
  8.                         sum=sum+num;////////////
  9.                         ret=scanf("%d",&num);
  10.         
  11.                         
  12.         
  13.                 }while(ret);
  14.                
  15.                
  16.                
  17.         printf("结果为:%d",sum);
  18.         
  19.         return 0;
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-3-12 21:22:45 | 显示全部楼层

对对对,谢谢大佬
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-6-10 18:23:41 | 显示全部楼层
  1. #include<stdio.h>

  2. unsigned int i,ch,ch1,count=0,count1=0;//count为最终结果,count1为每次读入整数

  3. int main()    //思路:1、读入所有字符,判断是否合法。2、计算每次输入全部整数。3、加到最后结果里。
  4. {
  5. while(1)
  6. {
  7.           printf("请输入合法的数字:");

  8.         do
  9.         {
  10.                 ch=getchar();
  11.                 if(ch>='0'&&ch<='9') //是数字的时候
  12.                 {
  13.                         count1=10*count1+ch-'0';  //读取十进制数字
  14.                 }
  15.                 else   //不是数字的话,跳出去
  16.                 {
  17.                         ch1=ch;    //为了后面区分回车还是字母用临时变量
  18.                          break;
  19.                 }
  20.                
  21.         }

  22.         while (ch!='\n');

  23.         count=count+count1;
  24.         if(ch1=='\n') //如果是回车,返回循环
  25.                 ;
  26.         else break;  //如果不是回车,也不是数字,退出循环
  27.         count1=0;    //单独一次循环的中间变量重置0

  28. }
  29.         printf("结果是:%d\n",count);

  30. return 0;
  31. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-6-10 18:25:00 | 显示全部楼层
我这个可以不只是输入个位数。验证了可以输入多位数。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-24 05:09

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表