为了账号安全,请及时绑定邮箱和手机立即绑定

新手提问 关于C语言for语句转while语句

新手提问 关于C语言for语句转while语句

神奇噶落小落 2014-10-12 16:26:21
#include <stdio.h> int main() {    double n, total ; /* a number is input into n and add to total */    double average ;  /* average of compute by total divide by i */    int i ;    total = 0 ;    printf( "\nCompute the average of some numbers between 0 and 100 \n" );    for( i = 0 ; ; i++ )    { printf( "please input a number (-1 to stop input) :> ") ;      scanf( "%lg", &n ) ;      if ( n > 100 )      { printf("Value input is too large. It is ignore!\n");        i-- ;        continue;      }      if ( n < -1 )      { printf("Value input is too small. It is ignore!\n");        i-- ;        continue;      }      if ( n == -1 ) break ;      total = total + n ;    }    if ( i == 0 )    { printf("No number is input! Nothing to compute the average!\n");    }    else    { average = total / i ;      printf( " The average of all the numbers are : %g\n\n" , average ) ;    } } 将上述代码中的for语句转换为while语句 这是计算0-100之间数值平均数的一个小程序 以下是我改写后的代码  运行后如果分别输入1,2,3 则可以得到正确答案 如果先输入大于100和小于-1的数 再输入正确范围的数值则运算有误 请各位前辈看看我改写的代码中哪里出错了#include <stdio.h> int main() {    double n, total ; /* a number is input into n and add to total */    double average ;  /* average of compute by total divide by i */    int i ;    total = 0 ;    printf( "\nCompute the average of some numbers between 0 and 100 \n" );        i = 0 ;     while(1)  {  printf( "please input a number (-1 to stop input) :> ") ;      scanf( "%lg", &n ) ;      if ( n > 100 )      { printf("Value input is too large. It is ignore!\n");        --i ;        continue;      }      if ( n < -1 )      { printf("Value input is too small. It is ignore!\n");        --i   ;        continue;      }      if ( n == -1 )  break;      { total = total + n ; i++; }      if ( i == 0 )      { printf("No number is input! Nothing to compute the average!\n"); } else {  i++ ; total = total + n ; average = total / i ;    } }   printf( " The average of all the numbers are : %g\n\n" , average ) ; }
查看完整描述

1 回答

?
wwpbjing

TA贡献20条经验 获得超5个赞

#include <stdio.h>
int main()
{
 double n, total ; /* a number is input into n and add to total */
 double average ;  /* average of compute by total divide by i */
 int i ;
 total = 0 ;
 printf( "Another Program\nCompute the average of some numbers between 0 and 100 \n" );
 i = 0 ;
 while(1)
 {
  printf( "please input a number (-1 to stop input) :> ") ;
  scanf( "%lg", &n ) ;
  if ( n > 100 )
  {
   printf("Value input is too large. It is ignore!\n");
   --i ;
   continue;
  }
  if ( n < -1 )
  {
   printf("Value input is too small. It is ignore!\n");
   --i;
   continue;
  }
  if ( n == -1 ) break;
  total = total + n ;
  i++;
 } // while循环在此结束
 if ( i == 0 )
 {
  printf("No number is input! Nothing to compute the average!\n");
 }
 else
 {
  i++ ;
  total = total + n ;
  average = total / i ;
 }
 printf( " The average of all the numbers are : %g\n\n" , average ) ;
}

查看完整回答
反对 回复 2014-10-12
  • 神奇噶落小落
    神奇噶落小落
    如果先输入999 提示过大 再输入-9 提示太小 接着分别输入1,2,3 得到的结果是2.5 不对呢 我把while语句中的--i给删了就可以了
  • 1 回答
  • 0 关注
  • 1549 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信