我的C++之旅—05
(原创)
排名代码
功能:按照姓氏排序,同姓氏的按照字典排序来
(这里只有4个姓氏,可以自己修改:赵钱孙李)源代码如下:
#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<string.h>
using namespace std;
struct Name {
char name[20];
}name[20];
int getNum(char name[20]) {
int i;
char p[4][3] = {"赵","钱","孙","李"};
for (i = 0;i < 4;i++) {
if (name[0] == p[i][0] && name[1] == p[i][1]) {
return i;
}
}
}
int main() {
char temp[20];
int n, i, j, m, u;
u = 3;
for (i = 0;i < u;i++) {
cin >> name[i].name;
}
for (i = 0;i < u;i++) {
for (j = i;j < u-1;j++) {
m = getNum(name[j + 1].name);
n = getNum(name[j].name);
if (m < n) {
strcpy(temp, name[j+1].name);
strcpy(name[j+1].name, name[j].name);
strcpy(name[j].name, temp);
}
if (m == n && strcmp(name[j+1].name,name[j].name)<0) {
strcpy(temp,name[j+1].name);
strcpy(name[j+1].name,name[j].name);
strcpy(name[j].name,temp);
}
}
}
for (i = 0;i < u;i++) {
cout << name[i].name << endl;
}
return 0;
}