⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 p5_5.cpp

📁 相当丰富的C++源码
💻 CPP
字号:
/*****************************************
* 5_5.cpp                                 *
*  利用对一个多维数组的某列排序的函数,    *
*  将学生某门功课的成绩分班级排序         *
******************************************/
#include<iostream>
using namespace std;
const col=5;
enum dir {Asc,Des};
void sort(int a[][col], int n, int Cn, dir D) //排序
{   
	int t[col];   //用于暂存一行数据
    for (int i=0;i<n-1;i++)
	   for (int j=i+1;j<n;j++)  //从待排序序列中选择一个最大(小)的数组元素 
		  if (a[i][Cn]<a[j][Cn]&&D==Des||a[i][Cn]>a[j][Cn]&&D==Asc)
		  {  
			 memcpy(t,a[i],sizeof(t)); //交换数组行
             memcpy(a[i],a[j],sizeof(t));
			 memcpy(a[j],t,sizeof(t));
		  }  
}
void main()
{  
  const CourseN=5;
  int n,score[][CourseN]={{20060101, 1, 82, 86, 0},
						{20060203, 2, 80, 80, 0},
						{20060204, 2, 86, 90, 0},
						{20060205, 2, 90, 83, 0},
						{20060102, 1, 75, 86, 0}};
  n=sizeof(score)/sizeof(score[0]);
  for (int i=0;i<n;i++)                //计算每个学生的总分
	  for(int j=2;j<CourseN-1;j++) 
	      score[i][CourseN-1]=score[i][CourseN-1]+score[i][j];  
  sort(score,n,4,Des); //按总分降序排序
  sort(score,n,1,Asc);//按班号的升序排序
  for (i=0;i<n;i++)                    //输出每个人的成绩与总分
  {
	  for(int j=0;j<CourseN;j++) 
        cout<<score[i][j]<<"\t";
	  cout<<endl;
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -