| 
                
                  | ety   
         
  
 | 分享:        ▲
                    
                      ▼         
 
   其實你的程式並沒有錯, 而是 while 出了問題! while 這個指令會判斷你所給予的條件是否符合, 如果符合就會執行, 不符合則是跳開! 而當 a 等於 0 時, 這就是不合格的參數了! 所以你的程式能完整的執行完流程但卻不能正常的結束! 只要把 while 的參數改為 a != 0, 讓 while 這個指令來判斷是否為 0, 而不要讓 while 去判斷 0 是否大於等於 1,  就可以解決這個問題了! 附上我的程式碼, 供你參考:複製程式 
#include <stdio.h>
int sum( int a, int b )
{
       int c;
       c = 0;
       printf( "Please key in NO.%d integer: ", a );
       scanf( "%d", &c );
       b = b + c;
       printf( "\nNow sum is: %d\n\n", b );
       return( b );
}
void average( int a, int b )
{
       int c;
       if( a == 0 )
       { c = 0; }
       else
       { c = a / b; }
       printf( "The average value is: %d\n", c );
}
int main( void )
{
       int Loop;
       int Input;
       int Sum;
       int Number;
       int Average_Value;
       Loop = 0;
       Input = 0;
       Sum = 0;
       Number = 1;
       Average_Value = 0;
       printf( "\nHow many integers?" );
       scanf( "%d", &Loop );
       printf( "\n" );
       if( Loop <= 0 )
       { printf( "Average value is: %d\n", Average_Value ); }
       else
       {
              while( Loop != 0 )
              {
                     Sum = sum( Number, Sum );
                     Loop = Loop - 1;
                     Number = Number + 1;
              }
              average( Sum, Number );
       }
       printf( "\nExit!\n" );
       return( 0 );
}
 
 [ 此文章被ety在2005-08-19 13:36重新編輯 ] 
 |  
                  | 
                
                  | 
 |  
                  |  x1  [3 樓]
                    
                    
                     From:台灣和信超媒體
 |  Posted:2005-08-19 13:11 | |  |  
                
                  | youchun 
         
  
 | 分享:        ▲
                    
                      ▼         
 
   不是有 int d 來做 counter ? 至於 a 可以加個 int tmp 暫存 我在你原本程式更改處加上 //here ety 所提到的檢查也請樓主注意 最後, 如果要計算到小數點下 請用 double 或 float複製程式 
#include<stdio.h>
int main()
{
     int a,b,c=0,d=1,tmp;
     
     printf("請問一共有幾個數字:");
     scanf("%d",&a);
     tmp =a ; //here
     
     while(tmp>=1){//here
     
           
           printf("請輸入第%d個數字:",d);
           scanf("%d",&b);
           
           c += b;
           
           printf("\n目前總和是%d\n\n",c);
           
           tmp--;//here
           d++;
           
     }
     printf("平均值為%d\n",c/a);
     
     return 0;
}
 |  
                  | 
                
                  | 
 |  
                  |  x1  [4 樓]
                    
                    
                     From:台灣中華電信
 |  Posted:2005-08-19 15:07 | |  |  
                
                  | 夷希微 
         
   
  
 | 分享:        ▲
                    
                      ▼         
 
   請問有規定一定要用 while 來做嗎?這個問題用 for 來做比較好解決吧 ^^"    #include<stdio.h>int main()
 
 {
 int a,b,c=0,d=1;
 
 printf("請問一共有幾個數字:");
 scanf("%d",&a);
 
 for(d=1;d<=a;d++){
 
 
 printf("請輸入第%d個數字:",d);
 scanf("%d",&b);
 
 c += b;
 
 printf("\n目前總和是%d\n\n",c);
 }
 
 
 printf("平均值為%d\n",c/a);
 
 return 0;
 }
 如果結果要有小數的話,使用強制轉型(作弊)的方式也可以達到效果唷 ^^"    #include<stdio.h>int main()
 
 {
 int a,b,c=0,d=1;
 
 printf("請問一共有幾個數字:");
 scanf("%d",&a);
 
 for(d=1;d<=a;d++){
 
 
 printf("請輸入第%d個數字:",d);
 scanf("%d",&b);
 
 c += b;
 
 printf("\n目前總和是%d\n\n",c);
 }
 
 
 printf("平均值為%.2f\n",(float)c/a);
 
 return 0;
 }
       
 |  
                  | 
                
                  | 
 |  
                  |  x1  [5 樓]
                    
                    
                     From:台灣中華電信 
 |  Posted:2005-08-21 18:49 | |  |  
                
                  | 珀琥 
         
  
 | 分享:        ▲         
 
   複製程式
#include<stdio.h>
main()
{
      int a,b=0,c=1,d=0,e=0;
      printf("請問有多少個數字:");
      scanf("%d",&a);
      d=a;
      if (a>0){
      do{
      printf("請輸入第%d個數字:",c);
      a=a-1;
      c++;
      scanf("%d",&b);
      e +=b;
      }while(a>0);
      printf("平均值=%d\n",(e/d));
      }
      system("pause");
      }
 
 |  
                  | 
                
                  | 
 |  
                  |  x0  [6 樓]
                    
                    
                     From:香港特別行政區
 |  Posted:2005-08-22 18:17 | |  |  |