求助二维数组问题,总是运行不出正确答案

sinat_34860016 2016-05-02 07:47:07
学到二维数组,有一道题是编写实现最高成绩查询函数int queryMaxScore,功能是查询所有成绩中的最高成绩,并返回该最高成绩
可是我写的这个代码编译时没有错,运行的时候返回实际学生数那里是对的,最高成绩就是错的了...请问能帮我看下是哪里出问题了吗

...全文
106 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
sinat_34860016 2016-05-03
  • 打赏
  • 举报
回复
引用 1 楼 qq423399099 的回复:
楼主你input的是a数组,而Max的却是b数组,当然结果不对了。。。

#include<stdio.h>
#include<stdlib.h>
#define N 3
int input(int score[][N], int length);
int Max(int score[][N], int length);
int main()
{
	int a[5][N];
	int k;
	k = input(a, 5);
	printf("学生数为%d", k);
	int u;
	u = Max(a, k);
	printf("最大值为%d", u);
}

int input(int score[][N], int length)
{
	int i = 0, j = 0;
	int tmp;
	printf("请输入学生成绩以-1结束:\n");
	do
	{
		printf("第%d个学生:\n", i + 1);
		printf("输入第1门课成绩:");
		scanf("%d", &tmp);
		if(tmp >= 0)
		{
			score[i][0] = tmp;
			for(j = 1; j < N; j++)
			{
				printf("输入第%d门课的成绩:\n", j + 1);
				scanf("%d", &score[i][j]);
			}
			i++;
		}
	}while(tmp != -1 && i < length);
	return i;
}

int Max(int score[][N], int length)
{
	int mMax = 0, nMax = 0;
	int i, j;
	for(i = 0; i < length; i++)
	{
		for(j = 0; j < N; j++)
		{
			if(score[i][j] > score[mMax][nMax])
			{
				mMax = i;
				nMax = j;
			}
		}
	}
	return score[mMax][nMax];
}
嗯,这回成功啦,谢谢!
小灸舞 2016-05-02
  • 打赏
  • 举报
回复
楼主你input的是a数组,而Max的却是b数组,当然结果不对了。。。

#include<stdio.h>
#include<stdlib.h>
#define N 3
int input(int score[][N], int length);
int Max(int score[][N], int length);
int main()
{
	int a[5][N];
	int k;
	k = input(a, 5);
	printf("学生数为%d", k);
	int u;
	u = Max(a, k);
	printf("最大值为%d", u);
}

int input(int score[][N], int length)
{
	int i = 0, j = 0;
	int tmp;
	printf("请输入学生成绩以-1结束:\n");
	do
	{
		printf("第%d个学生:\n", i + 1);
		printf("输入第1门课成绩:");
		scanf("%d", &tmp);
		if(tmp >= 0)
		{
			score[i][0] = tmp;
			for(j = 1; j < N; j++)
			{
				printf("输入第%d门课的成绩:\n", j + 1);
				scanf("%d", &score[i][j]);
			}
			i++;
		}
	}while(tmp != -1 && i < length);
	return i;
}

int Max(int score[][N], int length)
{
	int mMax = 0, nMax = 0;
	int i, j;
	for(i = 0; i < length; i++)
	{
		for(j = 0; j < N; j++)
		{
			if(score[i][j] > score[mMax][nMax])
			{
				mMax = i;
				nMax = j;
			}
		}
	}
	return score[mMax][nMax];
}

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧