輸入文件(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。