永发信息网

C++语言编程题

答案:2  悬赏:70  手机版
解决时间 2021-05-13 19:13

有几个同学,每人考m门课,要求实现:

1 找出各科成绩最高的同学号和课程号;

2 找出有不及格课程的学生号及各门课程的成绩;

3 求全部学生全部课程的总平均分

注:课定义n m且 n>=10;m>=3。 成绩百分制计算(0——100)学号可规定;但学生成绩不能规定,不及格<60

最佳答案

#include <iostream>
#include <string>
using namespace std;
int m,n; //m个学生,n门课程
string cnum[1000];//课程号
string snum[1000];//学号
int num[1000][1000];


int main()
{
void best();
void lose();
void ave();
cout<<"输入学生的人数和课程的数目:"<<endl;
cin >>m>>n;
int i,j;
cout<<"输入所有的课程号:"<<endl;
for(i=0;i<n;i++)
cin >>cnum[i];
cout<<"输入每个学生的学号,课程的成绩(按照上面课程号输入顺序依次录入成绩):"<<endl;
for(i=0;i<m;i++)
{
cin >>snum[i];
for(j=0;j<n;j++)
{
cin >>num[i][j];
}
}
char fl='Y';
while(fl=='y' || fl=='Y')
{
cout<<"请输入功能:"<<endl;
cout<<"1、各科成绩最高的同学学号和课程号"<<endl;
cout<<"2、不及格同学的学号和该同学各科的成绩"<<endl;
cout<<"3、每个学生全部课程的平均分"<<endl;
int t;
cin >>t;
switch(t)
{
case 1:
best();
break;
case 2:
lose();
break;
case 3:
ave();
}
cout<<"继续吗??(Y/N):";
cin >>fl;
}
return 0;
}


void best()
{
int a,i;
int b,j,z;
for(i=0;i<n;i++)
{
b=0;
z=0;
for(j=0;j<m;j++)
{
if(b<num[j][i])
{
b=num[j][i];
a=j;
}
}
cout<<"课程号为:"<<cnum[i];
cout<<" 成绩最高学生学号为"<<snum[a]<<endl;
for(z=0;z<m;z++)
{
if(b==num[z][i] && z!=a)
{
cout<<"课程号为:"<<cnum[i];
cout<<" 成绩最高学生学号为"<<snum[z]<<endl;
}
}
}
cout<<endl;
return;
}
void lose()
{
int a,i;
int b,j;
int temp=0;
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
if(num[i][j]<60)
{
temp=1;
cout<<"学号为:"<<snum[i];
cout<<"各科成绩为: ";
for(int z=0;z<n;z++)
cout<<num[i][j]<<" ";
cout<<endl;
break;
}
}
}
if(temp==0) cout<<"None!!"<<endl;
cout<<endl;
return ;
}


void ave()
{
int a,i;
int b,j,sum;
for(i=0;i<m;i++)
{
sum=0;
for(j=0;j<n;j++)
sum=sum+num[i][j];
cout<<"学号为:"<<snum[i];
cout<<" 平均成绩为:"<<(double)sum/n<<endl;
}
cout<<endl;
return ;
}



//(完全按照你的要求写的了,按照提示输入)

全部回答

这个是C语言的,稍微改下就行了

稍微有些不同自己修改下!

#include <stdio.h>

void main()

{ double st_ave(int ar[][3], int m); double sc_ave(int ar[][3], int n); void max(int ar[][3]);

int ar[2][3]; int i,j;

for (i=0; i<2; i++) for (j=0; j<3; j++) { printf("请输入第%d学生第%d门功课的成绩:", i+1, j+1); scanf("%d", &ar[i][j]); }

for (i=0; i<2; i++) printf("\n第%d个学生的平均成绩为:%.2f", i+1, st_ave(ar, i));

for (i=0; i<3; i++) printf("\n第%d门功课的平均成绩为:%.2f", i+1, sc_ave(ar, i));

max(ar);

}

double st_ave(int ar[][3], int m) { int i; int sum = 0;

for (i=0; i<3; i++) sum += ar[m][i];

return (sum/3.0);

}

double sc_ave(int ar[][3], int n) { int i; int sum = 0;

for (i=0; i<2; i++) sum += ar[i][n];

return (sum/2.0);

}

void max(int ar[][3]) { int i,j; int max = ar[0][0]; int x = 0, y = 0;

for (i=0; i<2; i++) for (j=0; j<3; j++) { if (max < ar[i][j]) { max = ar[i][j]; x = i; y = j; } }

printf("\n第%d个学生第%d门功课的成绩最高。为:%d\n", x+1, y+1, max); }

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
诺基亚N78免费手机主题网站谁知道和我说一下
淘宝返还积分有什么用,淘宝返还商城积分是什
谁是黑K高手,帮我个忙
湖滨区逍遥镇炖肉胡辣汤哪位知道具体地址啊
怀孕初期应该补些什么?
关于情人之间要永远在一起的唯美句子
想换车,斯巴鲁怎么样?我奔着它是四区、对置
建华区新特药(凤凰城店)这个地址在什么地方,
金山毒霸2009增强版通行证!
毕业时祝愿同学的诗句,祝愿爱情,亲情,事业的
怎么写好一篇成人礼作文?
QQ农场这套装饰是怎么弄的?有图
昂昂溪区齐齐哈尔福祥医院我想知道这个在什么
杭州财政局电话
给小船的诗歌,现在放到第几集
推荐资讯
平江县京东家电专卖店(木金店)在哪里啊,我有
关于“意外”的话题作文600字
栾川县陶然居这个地址怎么能查询到,着急去办
华龙区鲁西火锅百味居地址在什么地方,想今天
电脑关机要两个小时,屏幕黑屏,长按Power键
最好看的动画片是什么?
联想一体机电脑多少钱,联想lenovo电脑一体机
天元区大湖塘棋牌室地址是什么,有没有知道的
护理论文评语,对论文指导老师评价
为什么回答问问中的问题总是提交失败啊?
林俊杰的粉丝叫什么?
爱情最伤感的诗词,经典伤感爱情句子
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?