C程序,提问=~=,阿里嘎多

求任意个数成绩的平均分
编程:编写一个班级平均分计算程序,每次执行该程序,都能够处理任意数量的学生分数

 

编写一个程序来计算每个任意数量的班级中学生的平均成绩。输出每个班级的学生成绩,然后输出该班级的平均成绩。

参考代码



#include

#include

#include

int main(void)

{
const size_t cCount = 5; // 班级数量

const size_t sCount = 7; // 班级中的学生人数

char answer = 'N';

int grades[cCount][sCount]; // Stores the grades

size_t students[cCount]; // Stores the number of students in each class

for (size_t i = 0; i < cCount; ++i)

{
printf("输入学生的成绩 %d.\n", i + 1);

students[i] = 0; // Student count within a class

while (true)

{
printf("输入学生的等级 %d: ", students[i] + 1);

scanf("%d", &grades[i][students[i]]);

if (++students[i] == sCount)// Increment and check student count

{
printf("班级 %zd 学生信息输入完成 ", i + 1);

break;

}

printf("还有更多的学生 %zd ?(Y 或 N): ", i + 1);

scanf(" %c", &answer);

if (toupper(answer) == 'N')

break;

}

}

printf("\n");

for (size_t i = 0; i < cCount; ++i)

{
int class_total = 0;

printf("班级 %d 的学生成绩是:\n", class_total + 1);

for (size_t student = 0; student < students[i]; ++student)

{
class_total += grades[i][student];

if ((student + 1) % 6 == 0)

printf("\n");

printf("%5d", grades[i][student]);

}

printf("\n班级 %zd 的平均成绩是:%.2lf\n", i + 1, (double)class_total / students[i]);

}

return 0;

}

执行上面示例代码,得到以下结果:

hema@yiibai:~/book$ gcc main.c

hema@yiibai:~/book$ ./a.out

输入学生的成绩 1.

输入学生的等级 1: 90

还有更多的学生 1 ?(Y 或 N): y

输入学生的等级 2: 89

还有更多的学生 1 ?(Y 或 N): y

输入学生的等级 3: 93

还有更多的学生 1 ?(Y 或 N): y

输入学生的等级 4: 95

还有更多的学生 1 ?(Y 或 N): n

输入学生的成绩 2.

输入学生的等级 1: 98

 

 

 

几行代码即可,任一输入,当输入小于0的数时结束,代码如下:

#include <stdio.h>
int main()
{
	int nmb = 0;
	float sum = 0.0;
	float score;
	printf("请输入成绩:\n");
	while(true)
	{
		scanf("%f",&score);
		if(score < 0)
			break;
		else
		{
			sum += score;
			nmb++;
		}
	}
	sum = sum/nmb;
	printf("平均分:%.2f\n",sum);
	return 0;
}