注册 登录
编程论坛 VC++/MFC

二维数组的排序问题

qq852170540 发布于 2014-12-02 22:20, 596 次点击
// 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;
}
1 回复
#2
linan032014-12-04 11:06
then?
1