永发信息网

c++ 5个学生4门课程 求不及格那个学生的序号以及其各门课程的全部成绩

答案:2  悬赏:0  手机版
解决时间 2021-01-06 01:27
  • 提问者网友:记得曾经
  • 2021-01-05 06:14
c++ 5个学生4门课程 求不及格那个学生的序号以及其各门课程的全部成绩
最佳答案
  • 五星知识达人网友:一袍清酒付
  • 2021-01-05 06:33
for(int i=0;i<3;i++) 改成 for(int i=0;i<4;i++)

因为你传递进去的数组是int g[][4],4列追问并没什么卵用
大神 帮我运行一下吧 谢谢谢谢 或者加我QQ 1355764140 谢谢!!!在线等
int main()
{
int g[5][4]={{77,97,82,83},{75,76,77,78},{33,79,44,81},{21,33,80,82},{85,98,44,43}};追答s没有初始化,第一次比较如果g[j][i] < e不成立就不会执行s=j+1,然后输出cout << s就会输出无效值。把cout << s 放到if里面
void func2(int g[][4])
{
int s, e = 60;
for (int j = 0; j < 5; j++)
{
for (int i = 0; i < 4; i++)
{
if (g[j][i] < e)
{
s = j + 1;
cout << s << endl;
}
}

}
}
全部回答
  • 1楼网友:玩家
  • 2021-01-05 07:12
首先程序写法上肯定有问题,不能达到题目要求。题目要求找出不及格学生的对应各课程成绩,因此首先应该判断该生有没有不及格的课程,其次输出所有门次成绩。
根据题目设定和你的代码,g应该是保存了成绩,且应该是个g[5][4]的数组。比较通行的做法应该是在func2输入参量中指明学生数和课程数,于是大致如下:
#include 
void func2(int g[][4], int stu_n, int course_n)
{

int *s=NULL,e=60, i, j;
s=(int*)malloc(sizeof(int)*stu_n);
memset(s, 0, sizeof(int)*stu_n);
for(j=0;j {
for(i=0;i{
if(g[j][i]}
if(s[j]) {
printf("第%d个学生有[%d]门不及格,各门成绩为:", j, s[j]);
for(i=0; i printf(" ");
}
}
}
int main()
{
int g[5][4]={{1,2,3,4},{60,10,10,10},{60,10,10,50},{60,10,10,50},{60,10,10,50}};
func2(g, 5, 4);
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯