| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
x
 
- #include<stdio.h>
 
  
 
- int main()
 
 - {
 
 -         int sum = 0,temp = 0,status;
 
 -         
 
 -         while(status == 1)
 
 -         {
 
 -                 printf("请输入一个合法的数字:");
 
 -                 status = scanf("%d",&temp);
 
 -                 sum = sum + temp; 
 
 -         }
 
 -         printf("结果是:%d",sum);
 
 -         
 
 -         return 0;
 
 - }
 
  复制代码 
 本帖最后由 jackz007 于 2021-9-23 16:13 编辑 
        错误原因是,当最后键入非数字字符时,temp 仍然参与了计算,而这个时候的 temp 是前一次输入的数字 3。 
        修改方法是,只有在确定 temp 输入有效的情况下,才进行累加。
 - #include<stdio.h>
 
  
- int main()
 
 - {
 
 -         int sum = 0 , temp = 0 , status          ;
 
 -         do {
 
 -                 sum += temp                      ;
 
 -                 printf("请输入一个合法的数字:") ;
 
 -          } while (scanf("%d" , & temp) == 1)     ;
 
 -         printf("结果是:%d\n" , sum)             ;
 
 - }
 
  复制代码 
 
 
 |   
 
 
 
 |