文章
18
粉丝
0
获赞
3
访问
10.8k
#include<stdio.h>
#include<stdlib.h>
typedef struct {
char name[100];
}country;//用结构体的原因是结构体之间可以赋值
void swap(country* a, country* b){
country temp = *a;
*a = *b;
*b = temp;
}
void sort(country* arr, int len) {//采用选择排序
int max;
for (int i = 0; i < len - 1; i++) {
max = i;
for (int j = i + 1; j < len; j++) {
int k = 0;
while (arr[max].name[k] != '\0' || arr[j].name[k] != '\0') {
if (arr[max].name[k] > arr[j].name[k]) {//ASCII码越小,字母排位越靠前
max = j;
break;
}
else if(arr[max].name[k] == arr[j].name[k])//相同比下一位
k++;
else
break;
}
}
swap(&arr[max], &arr[i]);
}
}
int main() {
int n;
scanf("%d", &n);
country* list = (country*)malloc(sizeof(country) * n);
for (int i = 0; i < n; i++)
scanf("%s", list[i].name);
sort(list, n);
for (int i = 0; i < n; i++)
printf("%s\n", list[i].name);
}
登录后发布评论
暂无评论,来抢沙发