2014-03-04 159 views
0

即時通訊設法尋找程序員喝的普通咖啡。我可以找到並顯示平均值,但它顯示的方式似乎是錯誤的。我無法設法提取顯示平均值的最後一行。找到某個數組的平均值

char poste[]={'A','P','A','P','A','O','P','P','O'}; 
int nbCafe[]={3,5,2,1,7,1,0,3,2}; 
int progonly=0; 
float progmoyenne=0; 

for(i=0;i<9;i++){ 
    if (poste[i]=='P'){ 
     progonly+=nbCafe[i]; 
     progmoyenne=progonly/4.0;} 
printf("%f\n",progmoyenne);} 

執行給這個(最後一行是平均喝咖啡):

0.000000 
0.000000 
0.000000 
0.000000 
0.000000 
0.250000 
0.250000 
1.000000 
2.250000 
+0

你的意思是要顯示的,而不是那些只值的平均值? –

+1

「progmoyenne = progonly/4.0」這是幹什麼用的? – Shmoopy

+1

'printf'應該在for循環之外 –

回答

0

如果你只是想顯示的平均水平,那麼只打印平均值。將printf移到for循環之外。

for(i=0;i<9;i++) 
{ 
    if (poste[i]=='P') 
    { 
     progonly+=nbCafe[i]; 
     progmoyenne=progonly/4.0; 
    } 
} 
printf("%f\n",progmoyenne); 
0

printf置於for之外。也不要使用int i;

0

嘗試宣告我這一個:

for(cnt=i=0;i<9;i++){ 
    if (poste[i]=='P'){ 
     progonly+=nbCafe[i]; 
     progmoyenne=progonly/(float)++cnt; 
     printf("%f\n",progmoyenne); 
    } 
} 

輸出:

$ ./a.out 
5.000000 
3.000000 
2.000000 
2.250000