C 如何使用嵌套for循环计算多个平均值?
我尝试使用嵌套for循环计算多个平均值。内部的一个单独工作很好,但是当我尝试将它嵌套在外部for循环中以计算多个学生时,程序会正确地显示第一个平均值,但超出该值时,程序不会计算平均值。谁能告诉我哪里出了问题C 如何使用嵌套for循环计算多个平均值?,c,C,我尝试使用嵌套for循环计算多个平均值。内部的一个单独工作很好,但是当我尝试将它嵌套在外部for循环中以计算多个学生时,程序会正确地显示第一个平均值,但超出该值时,程序不会计算平均值。谁能告诉我哪里出了问题 #include <stdio.h> int main(void) { int ctr = 0, i, mark, grades, s, students; float average, gradeTotal = 0, mark; printf("
#include <stdio.h>
int main(void)
{
int ctr = 0, i, mark, grades, s, students;
float average, gradeTotal = 0, mark;
printf("how many students?\n");
scanf("%i", &students);
for (s = 1; s <= students; s++)
{
printf("Enter number of grades:\n");
scanf("%f", &grades);
for (i = 1; i <= grades; i++)
{
printf("enter mark: \n");
scanf("%i", &mark);
gradeTotal += mark;
}
average = gradeTotal/grades;
printf("The average is %.2f\n", average);
}
return(0);
}
#包括
内部主(空)
{
int ctr=0,i,分数,年级,s,学生;
浮动平均值,等级合计=0,标记;
printf(“有多少学生?\n”);
scanf(“%i”和“学生”);
对于(s=1;s而言,简单的解决方法是在外循环开始时将gradeTotal
重新初始化为零
否则,gradeTotal
将保留所有学生的运行总数,因此打印的值将是当前学生和之前所有学生的运行总数除以成绩
,而您需要每个学生的平均值
您可能还希望考虑变量的限制范围。例如,在外循环中定义和初始化<代码> Grand总计< /C> >(而不是在循环外定义它)将防止在循环迭代之间意外误用其值。一般来说,最好在尽可能小的范围内定义变量,因为这有助于消除诸如忘记重新初始化等问题,同时防止在其他代码中意外使用。
mark
和i
在内环外需要。s
、gradestotal
、gradestotal
和average
在外环外不需要。ctr
根本不需要。在外环开始时将gradestotal
重新初始化为零。否则,打印的平均值将是当前周期内的总和学生和所有之前的学生除以成绩
,而你想要的是每个学生的平均成绩。它现在起作用了!非常感谢Peter!@Peter,将其作为答案发布,因为我不想因为你的努力而获得荣誉。