「学生の出席番号と試験の成績が入力として与えられるときに試験の成績 の順に成績と出席番号を出力するプログラムを作成せよ」という問題の続きなのですが、出席番号をうまく出力できていません。
実行結果は下に記した通りで、一番最後に入力した数値(出席番号)しか出力されません。どうすれば解決するのでしょうか。よろしくお願いします。
ーーーーーーーーーーーーーー
今回集計する人数を入力=2
試験の成績を入力してください。
1 人目:80
次に出席番号を入力してください。
1
試験の成績を入力してください。
2 人目:90
次に出席番号を入力してください。
2
今回の試験順位(昇順)
点数:90
出席番号:2
点数:80
出席番号:2
ーーーーーーーーーーーーーー
#include <stdio.h>
#define MAXDATA 100
int main()
{
int d[MAXDATA];
int X;
int a;
int i, j, k;
int tmp;
printf("今回集計する人数を入力="); scanf("%d",&X);
for (i = 0; i < X; i++){
printf("試験の成績を入力してください。\n");
printf("%d 人目:",i+1);
scanf("%d", &d[i]);
printf("次に出席番号を入力してください。\n");
scanf("%d" ,&a);
}
printf("今回の試験順位(昇順)\n");
for(i=0;i < X-1; i++){
j=i;
for(k=i+1; k < X; k++){
if(d[j]<d[k]){ j = k; }
}
tmp = d[j];
d[j] = d[i];
d[i] = tmp;
}
for (i = 0; i < X; i++) {
printf("点数:%d\n", d[i]);
printf("出席番号:%d\n", a);
}
}