某班级有4名这学生,每个学生有5门课程。编程实现以下3个要求:
题目:
某班级有4名这学生,每个学生有5门课程。编程实现以下3个要求:
(1)求第一门课程的平均成绩;
(2)找出有两门以上课程不及格的学生,输出他们的学号和全部课程成绩及平均分;
(3)找出平均成绩在90分以上或全部课程成绩在85分以上的学生。
源代码:
#include<stdio.h>
#include<stdlib.h>
//输出4个学生5门成绩
int 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");
}
}
//输出第一门课程的平均分
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;
}
//两门及两门以上不及格学生信息
int 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;
}
}
}
}
//每门课程均大于85分的学生信息
int 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);
}
printf("\n");
}
//平均成绩大于90分的学生信息
int great90(int m[4][5])
{
int i,j;
double summ,aver;
for(i=0;i<4;i++)
{
summ=0;
for(j=0;j<5;j++)
{
summ+=m[i][j];
}
aver=summ/5;
if(aver>=90)
{
printf("第%2d个学生",i+1);
for(j=0;j<5;j++)
printf("%5d",m[i][j]);
printf("\n");
}
}
}
int menu()
{
printf("\n 学生成绩管理系统\n\n");
printf(" *****************************\n");
printf("\n");
printf(" 1.输出4个学生5门成绩\n");
printf("\n");
printf(" 2.第一门课程的平均分\n");
printf("\n");
printf(" 3.有两门及以上不及格学生的信息\n");
printf("\n");
printf(" 4.每门成绩均大于85分的学生信息\n");
printf("\n");
printf(" 5.平均成绩大于90分的学生信息\n");
printf("\n");
printf(" 0.退出\n");
printf(" *****************************\n");
}
int menu_bye()
{
printf("*****************************\n");
printf(" 欢迎使用本系统!\n");
printf("\n");
printf(" 再见\n");
printf("*****************************\n");
}
int main()
{
menu();
int n;
int (*point)[5];//二维数组指针
int score[4][5]={
{86,87,86,99,98},
{48,59,59,82,80},
{99,81,89,99,96},
{58,90,90,85,55}};
point=score;//二维数组指针指向该二维数组
while(1)//大循环
{
printf("请输入(0--5);");
scanf("%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第一门课程的平均分:");
double avg;
avg=average(point);
printf("%.1f",avg);
printf("\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;
}
}
}
输出结果:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现