二维数组的排序问题
// 101.cpp : Defines the entry point for the console application.//问题是用键盘输入10个学生的学号和成绩,按成绩从高到低进行排序。并输出
#include "stdafx.h"
#include "string.h"
#include "stdio.h"
int main(int argc, char* argv[])
{
//首先我定义了一个确定的2行10列的数组;01~10位学号,11~20为分数,第一个和最后一个分数交换了,只是为了检验。
int a[10][2]={{01,20},{02,12},{03,13},{04,14},{05,15},{06,16},{07,17},{08,18},{09,19},{10,11}};
int i,j,k,max,t,p;
for (j=0;j<9;j++){ //简单的二次循环
max=j; //我的想法是,由于是2行10列的,我先不理学号,
for(k=j+1;k<10;k++){
if(a[1][max]<a[1][k]){max=k;}
t=a[1][j]; //先比较分数的大小,利用选择法进行排序
a[1][j]=a[1][max]; //
a[1][max]=t; //
p=a[0][j]; //之后根据先前分数的排序在同一个循环中,
a[0][j]=a[0][max]; //也将学号进行同样的交换,以达到学号和分数一致。
a[0][max]=p; //
}
}
//输出我没写出来
return 0;
}