标题:新手求助 一道小题 谁能出线
只看楼主
Daybreak0
Rank: 1
等 级:新手上路
帖 子:14
专家分:8
注 册:2010-4-7
 问题点数:0 回复次数:2 
新手求助 一道小题 谁能出线
电视台举办“超级学生”才艺大赛,由于报名人数狂多,所以要先进行分组预赛。按规定,每10名学生为一个预赛小组,评委打出分数(0~100分),各小组第一名可以进入下一轮;如果有多名学生得分相同都是第一名,则可同时进入下一轮。

输入:
        按顺序给出一个小组10个人的最后得分(int)。

输出:
        能够出线的学生序号(0~9)。


这是我编的
#include<stdio.h>
main()
{
    int i,k,j=1,max=0,a[10],m[10];
    for(k=0;k<10;k++)
        scanf("%d",&a[k]);                        
    for(i=0;i<10;i++)
        if(max<a[i]) max=a[i],m[0]=i;               先求一个最大值
    for(i=0;i<10;i++)
        if(a[i]==max) m[i]=i,j++;                    然后找是否有平分的
    for(i=0;i<j-1;i++)
        printf("%d\n",m[i]);
}
如果没有平分的,就正确,
但是有平分的时候,就只有第1个是对的,为什么,怎么改啊?
搜索更多相关主题的帖子: 超级学生 电视台 
2010-04-08 13:27
yjy1987420
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:39
专家分:120
注 册:2009-9-14
得分:0 
for(i=0;i<10;i++)
        if(a[i]==max) m[i]=i,j++;                    然后找是否有平分的
改成
 for(i=0;i<10;i++)
        if(a[i]==max) m[j-1]=i,j++;
2010-04-08 15:50
Daybreak0
Rank: 1
等 级:新手上路
帖 子:14
专家分:8
注 册:2010-4-7
得分:0 
谢谢
2010-04-08 21:50



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-302185-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.315641 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved