请教一个求二维数组中最高分的问题

[复制链接]
查看11 | 回复3 | 2011-9-8 10:09:29 | 显示全部楼层 |阅读模式
以下程序只求出了一个最高分,如果有两个相同的最高分,那么就出现了逻辑错误,不知道哪里错了,也不知道怎么改,希望帮我改下,谢谢,就改这个函数就可以了voidmax(floata[][5],intn){inti,j;floatmaxx=a[0][0],maxi=0,maxj=0;for(i=0;in;i)for(j=0;j5;j)if(maxxa[j]){maxx=a[j];maxi=i;maxj=j;}cout\"最高分:\"maxx\";是第\"maxi1\"个学生;第\"maxj1\"门课程\"endl;for(i=0;in;i)for(j=0;i5;j)if(maxx==a[j]\"最高分:\"a[j]\";是第\"i1\"个学生;第\"j1\"门课程\"endl;}
回复

使用道具 举报

千问 | 2011-9-8 10:09:29 | 显示全部楼层
你这个算法好累啊,干嘛要先输出一个,然后再遍历一遍数组,输出其他不等于已经输出的那组的最大值?没意义啊floatmaxx=a[0][0];for(i=0;in;i)for(j=0;j5;j)if(maxxa[j])maxx=a[j];for(i=0;in;i)for(j=0;i5;j)if(maxx==a[j])cout\"最高分:\"a[j]\";是第\"i1\"个学生;第\"j1\"门课程\"endl;}
回复

使用道具 举报

千问 | 2011-9-8 10:09:29 | 显示全部楼层
voidmax(floata[][5],intn){inti,j;floatmaxx=a[0][0];for(i=0;in;i)for(j=0;j5;j)if(maxxa[j])maxx=a[j];for(i=0;in;i)for(j=0;i5;j)if(maxx==a[j])cout\"最高分:\"a[j]\";是第\"i1\"个学生;第\"j1\"门课程\"endl;}
回复

使用道具 举报

千问 | 2011-9-8 10:09:29 | 显示全部楼层
for(i=0;in;i)for(j=0;j5;j)if(maxxa[j])//这个判断到找到最大的,就不会再进入if里。当然,和这个最大值一样的,也会进入这个if里{maxx=a[j];maxi=i;maxj=j;}建议你用排序做
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行