C语言结构体排序方法
2015-08-17 16:13
337 查看
#include "stdafx.h" #include<iostream> #include<string> #include<algorithm> using namespace std; struct student { string name;//姓名 int math;//数学成绩 int english;//英语 }; int c =0;//控制排序规则 bool compare(student a, student b) { if (c == 0)//按照姓名递增排序 { return (a.name<=b.name); } else if (c == 1)//按照数学成绩递增排序 { return (a.math <= b.math); } else//按照英语成绩递增排序 { return (a.english <= b.english); } } int _tmain(int argc, _TCHAR* argv[]) { student array[3]; array[0].name = "John"; array[0].math = 86; array[0].english = 91; array[1].name = "Michelle"; array[1].math = 85; array[1].english =95; array[2].name = "Kim"; array[2].math = 89; array[2].english = 60; cout << "原始顺序:" << endl; for (int i = 0; i <3; i++) cout << array[i].name << ' ' << array[i].math << ' ' << array[i].english << endl; cout << "按姓名递增排序:" << endl; c =0; sort(array,array+3,compare); for (int i = 0; i <3;i++) cout << array[i].name << ' ' << array[i].math << ' ' << array[i].english << endl; cout << "按数学成绩递增排序:" << endl; c =1; sort(array, array + 3, compare); for (int i = 0; i <3; i++) cout << array[i].name << ' ' << array[i].math << ' ' << array[i].english << endl; system("pause"); return 0; }
相关文章推荐
- C语言得到当前系统时间
- c语言笔记
- 黑马程序员-----c语言基础与重点第一篇——C知识基础
- static关键字的用法(C++)
- 01C语言的概述
- C++基本数据类型
- JAVA Socket编程和C++ Socket编程有什么不同
- [LeetCode] Sort List
- [C++]Single Number III单个数字3
- 漫话C++0x
- java 和 C++ Socket通信(java作为服务端server,C++作为客户端client,解决中文乱码问题GBK和UTF8)
- C语言字符串面试题目总结
- C++中数字与字符串之间的转换
- Java与C++Socket通讯注意事项
- C语言的冒泡排序和快速排序算法使用实例
- VC++弹出U盘
- java与C++之间进行SOCKET通讯要点简要解析
- 黑马程序员-[C语言] 第一篇:运算符、程序结构总结
- C语言求最小公倍数和最大公约数三种算法
- C++ STL学习