对结构体数组进行冒泡排序(根据名字大小)

对结构体数组进行冒泡排序(根据名字大小)

typedef struct avperson{
    char name[30];
    int age;
    char bust;
    char product[50];
}AVPerson;

AVPerson per1 = {"cangJingKong", 25, 'D', "secondDream"};
    
    AVPerson per2 = {"longZeLuoLa", 22, 'C', "daMingGong"};
    
    AVPerson per3 = {"buoDuoYeJieYi", 27, 'D', "jiaYouXianQi"};
    
    AVPerson per4 = {"jiZeMingBu", 24, 'E', "yiLuXingXi"};
    
    AVPerson arr[4] = {per1, per2, per3, per4};
    
    //打印出每一个元素的信息
    for (int i = 0; i < 4; i++) {
        
        printf("%13s -- %d -- %c -- %s\n", arr[i].name, arr[i].age, arr[i].bust, arr[i].product);
        
    }
    
    printf("------------------------------------------\n");
    
    for (int i = 0; i < 4 - 1; i++) {
        
        for (int j = 0; j < 4 - 1 - i; j++) {
            
            if (strcmp(arr[j].name, arr[j+1].name) < 0) {
                
                AVPerson temp = arr[j];
                arr[j] = arr[j+1];
                arr[j+1] = temp;
            }
        }
    }
    
    printf("按名字大小比较排序后:\n");
    
    for (int i = 0; i < 4; i++) {
        
        printf("%13s -- %d -- %c -- %s\n", arr[i].name, arr[i].age, arr[i].bust, arr[i].product);
    }


需要注意的问题:

  1. 结构体数组的定义:本题中的定义格式为 AVPerson arr[4] ={per1, per2, per3, per4
    };  其中结构体数组的类型和每个结构体的类型一样,都是AVPerson
  2. 冒泡排序的关键代码中,比较的是名字的字符大小,交换的是av女优在数组的位置,所以定义一个同样数据类型的结构体数组AVPerson temp = {0}来接收交换值.

控制台运行示例:



  • 9
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值