程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> c語言-C語言 超級排序

c語言-C語言 超級排序

編輯:編程綜合問答
C語言 超級排序

輸入文件(sort.in)
共n+1行
第1行,兩個整數n,k,表示有n個同學參加了考試,考了k門;
第1~n+1行,每行k+1個整數,描述1位同學的學號、科目1成績、科目2成績、……科目k成績。
輸出文件(sort.out)
共一行,10個整數,排名順序輸出前10名同學的學號,兩個數據之間用一個空格隔開。

#include<stdio.h>
int m[10];
int s[100000];
long int n;
void sort()
{
    int i,j,k,t,max,x=0;
    scanf("%ld %d",&n,&k);
    for(i=0;i<n;i++)
    {
        scanf("\n");    
        s[i]=0;     
        for(j=0;j<k;j++)
        {
            scanf("%d",&t);
            getchar();
            s[i]=s[i]+t;
        }s[i]=s[i]-i-1;//總分記錄,減去第一個學號數
    }
    while(x<=10)
    {
        max=s[0];
        m[x]=1;//學號記錄
        for(i=1;i<n;i++)
        {
            if(s[i]>max)
            {
                max=s[i];
                m[x]=i+1;
            }       
        }
        s[m[x-1]]=0;
        x++;
    }
}
void print()
{   
    int i;
    for(i=0;i<10;i++)
        printf("%d",m[i]);
}
void main()
{
    sort();
    print();
}

求看程序問題

最佳回答:


問題略多,sort()裡接收並計算成績那部分s[i]=s[i]-i;是什麼意思?
下面找最高的10個成績時 s[t]=0;豈不不是最高的成績都清0了?
m[x++]=max;這句m[]數組裡面不應該放學號嗎?怎麼放成績了?
print()函數裡面的for循環循環條件不能等於10。

sinat_31829943
a1193561652
a1193561652
sinat_31829943
sinat_31829943
sinat_31829943
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved