2014-03-04 157 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