c - 关于在 C 中使用 "functions"

标签 c function programming-languages

我是编程的初学者,几天来我一直被以下问题所困扰。

我正在重写 this我创建的一段代码,仅使用“函数”。请注意,在执行原件时,我们有程序员的平均咖啡消耗量 = 1.25。但是,通过使用函数 here我得到一个不同的数字 0.63

我试图找出错误所在,但我被卡住了。 谁能解释一下我的错误在哪里,也许能给我一些建议?作为初学者,我会接受任何建设性的评论/批评。

代码:

float conso(char posteVoulu, char poste[], int nbElem, int tableau[])
{
   int i ;
   float somme = 0.0;
   for(i = 0; i < nbElem; i++)
       {
           if (poste[i] == posteVoulu)
               {
                   somme += tableau[i];
               }
       }
   return somme / nbElem;
}


void afficher(int age[], int nbCafe[], char poste[], int nbPers)
{
   int i;

   printf("Contenu des 3 tableaux:\n\n");
   printf("  Indice  Age    #Cafe     Poste\n");
   for ( i = 0; i < nbPers; i++)
   {
       printf("%5d%8d %6d   ", i, age[i], nbCafe[i]);
       switch (poste[i])
       {
       case 'A' :
           printf("  Analyste\n");
           break;
       case 'P' :
           printf("  Programmeur\n");
           break;
       case 'O' :
           printf("  Operateur\n");
           break;
       }
   }
   printf("\n");
}
int main()
{
   char poste[] = {'A', 'P', 'O', 'P', 'A', 'O', 'P', 'P'};
   int age[]= {25, 18, 23, 20, 49, 24, 56, 29},
       nbCafe[] = {3, 1, 6, 1, 4, 1, 0, 3} ;
   int nbPers = sizeof(age) / sizeof(int);

afficher(age, nbCafe, poste, nbPers);

printf("La consomation moyenne de cafe des programmeurs : %.2f\n",
       conso('P', poste, nbPers, nbCafe));

   printf("\n");
   system("pause") ;
   return 0;
}

最佳答案

在您的新代码中,您将程序员消耗的咖啡 (5) 除以所有人 (8)。在您的原始代码中,您首先统计了程序员的数量(4)。这是 conso 的修复版本:

float conso(char posteVoulu, char poste[], int nbElem, int tableau[])
{
   int   i;
   float somme  = 0.0;
   int   nbPers = 0;
   for(i = 0; i < nbElem; i++)
       {
           if (poste[i] == posteVoulu)
               {
                   somme += tableau[i];
                   nbPers++;
               }
       }
   if (nbPers == 0)
       return 0;
   return somme / nbPers;
}

关于c - 关于在 C 中使用 "functions",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27162738/

相关文章:

user-interface - 音频软件开发的 GUI 开发?

scala - 事件应该在外部可变吗?

c - 我如何解析这样的字符串 (6,8)

c - 在 C 语言中使用 MariaDB

c - 当进程再次执行时,使用 signal.h 终止在后台运行的进程

php - 当用户点击显示更多按钮时显示更多帖子

c - Uart 检查接收缓冲区中断与轮询

function - 在单独的 golang 包中声明一个结构不能返回值,但在具体声明时可以

javascript - 如何返回事件监听器调用的函数的值?

javascript - 除 JavaScript 之外的任何其他语言在大括号开始位置(同一行和下一行)之间是否有区别?