源程序:
#include <stdio.h>
#include <stdlib.h>
//输出4个学生5门课程
void print(int m[4][5])
{
int i, j;
for (i = 0; i < 4; i++)
{
for (j = 0; j < 5; j++)
{
printf("%3d", m[i][j]);
}
printf("\n");
}
printf("\n\n");
}
//第一门课的平均成绩
double average(int m[4][5])
{
int i;
double sum = 0, aver;
for (i = 0; i < 4; i++)
{
sum += m[i][0];
}
aver = sum / 4;
return aver;
}
//找出有两门课不及格的学生
void fail(int m[4][5])
{
int i, j, n;
for (i = 0; i < 4; i++)
{
n = 0;
for (j = 0; j < 5; j++)
{
if (m[i][j] < 60)
++n;
if (n >= 2)
{
printf("第%2d个学生%5d%5d%5d%5d%5d\n",
i + 1, m[i][0], m[i][1],
m[i][2], m[i][3], m[i][4]);
break;
}
}
}
}
//平均成绩在90分以上
void great90(int m[4][5])
{
int i, j;
printf("\n\n");
printf("平均成绩在90分以上的学生:\n");
double summ, aveg;
for (i = 0; i < 4; i++)
{
summ = 0;
for (j = 0; j < 5; j++)
{
summ += m[i][j];
}
aveg = summ / 5;
if (aveg >= 90)
{
printf("第%2d 个学生", i + 1);
for (j = 0; j < 5; j++)
printf("%5d", m[i][j]);
printf("\n");
}
}
}
//全部成绩大于85分的学生
void allpass85(int m[4][5])
{
int i;
for (i = 0; i < 4; i++)
{
if (m[i][0] > 85 && m[i][1] > 85 && m[i][2] > 85 &&
m[i][3] > 85 && m[i][4] > 85)
printf("第%2d个学生 ", i + 1);
//else
//{
// printf("没有全部成绩都在85分以上的学生!!\n");
// break;
//}
if (i == 4)
printf("没有全部成绩都在85分以上的学生!!\n");
}
printf("\n\n");
}
//菜单
void menu()
{
printf("\n学生成绩管理系统\n");
printf("\n********************************\n");
printf(" 1. 输出4个学生5门课程\n");
printf(" 2. 第一门课的平均分\n");
printf(" 3. 有两门及以上不及格学生信息\n");
printf(" 4. 每门成绩均大于85分\n");
printf(" 5. 平均成绩90以上的学生(含90)\n");
printf(" 0. 退出\n");
printf("\n********************************\n");
}
void menu_bye()
{
printf("\n********************************\n");
printf("\n 欢迎再次使用\n");
printf("\n");
printf("\n 再见!\n");
printf("\n********************************\n");
}
//主函数
int main()
{
menu(); //程序首先执行菜单
int n;
//int i, j;
int(*point)[5];
int score[4][5] = {
{86,87,86,99,99},
{78,69,79,82,80},
{99,81,89,99,98},
{18,99,98,87,16} };
point = score;
while(1)
{
printf("请输入(0-5):");
scanf_s("%d", &n);
if (n < 0 || n>5)
printf("没有此值,请重输入!\n");
switch (n)
{
case 0:
system("cls");
menu_bye();
exit(0);
break;
case 1:
printf("4个学生5门课成绩:\n\n");
print(point);
break;
case 2:
//printf("第一门课程的平均分\n\n");
double avg;
avg = average(point);
printf("\n第一门课程的平均分:%.1f ", avg);
printf("\n\n");
break;
case 3:
//找出有两门课不及格的学生
printf("\n有两门以上课程不及格的学生:\n");
fail(point);
break;
case 4:
printf("\n每门课程均大于85分的学生:\n");
allpass85(point);
break;
case 5:
printf("\n平均成绩大于90的学生:\n");
great90(point);
break;
}
}
}
运行结果 :