たとえば、番号順に昇順に整列させたとき、
101 94
というふうに、{}の中のペアのまま動いてくれないのですが、どうしたらいいのでしょうか?
#include <stdio.h>
int main(void) {
int n, m, c, bangou[10][2] = { {103,94},{101,75},{104,95},{106,76},{108,64},{102,85},{107,99}, {110,81},{109,80},{105,88} }, i, j, k, l;
printf("学生の得点データを整列します。\n");
printf("何について整列しますか?\n");
printf("番号順-0 得点順-1 :");
scanf("%d", &n);
printf("整列の順番は?\n");
printf("昇順-0 降順-1 :");
scanf("%d", &m);
/*番号順*/
if (n == 0) {
/*昇順*/
if (m == 0) {
j = 0;
for (k = 0; k < 10; k++) {
for (i = 9; i > k; i--) {
if (bangou[i][j] < bangou[i - 1][j]) {
c = bangou[i - 1][j];
bangou[i - 1][j] = bangou[i][j];
bangou[i][j] = c;
}
}
}
}
/*降順*/
if (m == 1) {
j = 0;
for (k = 0; k < 10; k++) {
for (i = 9; i > k; i--) {
if (bangou[i][j] > bangou[i - 1][j]) {
c = bangou[i - 1][j];
bangou[i - 1][j] = bangou[i][j];
bangou[i][j] = c;
}
}
}
}
for (i = 0; i < 10; i++) {
printf("%d = %d\n", bangou[i][0], bangou[i][1]);
}
}
/*点数順*/
if (n == 1) {
/*昇順*/
if (m == 0) {
j = 1;
for (i = 0; i < 10; i++) {
for (k = 9; k > i; k--) {
if (bangou[k][j] < bangou[k - 1][j]) {
c = bangou[k - 1][j];
bangou[k - 1][j] = bangou[k][j];
bangou[k][j] = c;
}
}
}
}
/*降順*/
if (m == 1) {
j = 1;
for (i = 0; i < 10; i++) {
for (k = 9; k > i; k--) {
if (bangou[k][j] > bangou[k - 1][j]) {
c = bangou[k - 1][j];
bangou[k - 1][j] = bangou[k][j];
bangou[k][j] = c;
}
}
}
}
for (i = 0; i < 10; i++) {
printf("%d = %d \n", bangou[i][0], bangou[i][1]);
}
}
return 0;
}