09/06/29 17:53:49
>>186 >>196 教室で習ったソート(並び替え)のCソースをくれると、参考にする、かも。
#include <stdio.h>
#include <stdlib.h>
#define n 9 /* 生徒の数+1 */
#define m 7 /* 科目の数+2 */
int cmp(const int *a, const int *b) {
int t = a[1] - b[1];
return (t==0)?0:(t>0?1:-1);
}
int main()
{
int k;
int index[n][2];
/* ここからは変更無し */ //char namae[n][5]
/* ここまでは変更無し */ //printf("%6.0f\n",goukei[i]); }
for(k=m-2; k>=0; k--) { /* 科目数のループ */
printf("\n%sの点数で並び替え\n", kamoku[k+1]);
if(k == m-2)
for(i=1; i<n; i++) index[i][0] = i, index[i][1] = goukei[i];
else
for(i=1; i<n; i++) index[i][0] = i, index[i][1] = seiseki[i][k];
qsort(&index[1][0], n-1, sizeof(int)*2, (int (*)(const void*, const void*))cmp );
for(i=1; i<n; i++) { /* 生徒数のループ */
printf("%s", namae[index[i][0]]);
for(j=0; j<m-2; j++){ /* 科目数のループ */
printf("%6.0f",seiseki[index[i][0]][j]);
}
printf("%6.0f\n",goukei[index[i][0]]);
}
}
return 0;
}