【问题标题】:Finding average of a certain array求某个数组的平均值
【发布时间】:2014-03-04 14:12:31
【问题描述】:

我试图找出程序员喝的平均咖啡。我可以找到并显示平均值,但它的显示方式似乎是错误的。我只是无法提取显示平均值的最后一行。

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

【问题讨论】:

  • 你的意思是只显示平均值而不是所有这些值?
  • "progmoyenne=progonly/4.0" 这是干什么用的?
  • printf 应该在 for 循环之外

标签: c


【解决方案1】:

如果您只想显示平均值,则只需打印平均值。将 printf 移到 for 循环之外。

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

【讨论】:

    【解决方案2】:

    printf 放在for 循环之外。还要声明我使用int i;

    【讨论】:

      【解决方案3】:

      试试这个:

      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
      

      【讨论】:

        猜你喜欢
        • 2015-10-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-06-01
        • 1970-01-01
        • 2016-01-10
        • 1970-01-01
        • 2022-11-19
        相关资源
        最近更新 更多