/** * @file hello.c * @author your name (geovindu) * @brief * @ide vscode c11,c17 windows 10 * @version 0.1 * @date 2023-11-05 * * @copyright Copyright (c) 2023 * */ #include <stdlib.h> #include <stdint.h> #include <stdio.h> struct num1 { char a; //1 char b; //2 double c; //8 short d; }; struct num2 { char a; //1 double b;//2 char c; int d; }; /** * @brief 学生 * */ struct Student { /** * @brief 姓名 * */ char name[20]; /** * @brief 年龄 * */ int age; /** * @brief 成绩 * */ int score; }; /** * @brief 英雄 * */ struct Hero { /** * @brief 姓名 * */ char name[20]; /** * @brief 年龄 * */ int age; /** * @brief 性别 * */ char sex[2]; }; /** * @brief 升序排序 * * @param a * @param b * @return int */ int cmp(const void *a,const void *b){ struct Hero c=*(struct Hero*)a; struct Hero d=*(struct Hero*)b; //按升序排序 return c.age-d.age; } /** * @brief 升降 * * @param her * @param n */ void SortBubble(struct Hero her[10],int n) { for(int i=0;i<n;i++) { for(int j=0;j<n-1;j++) { if(her[j].age>her[j+1].age) cmp(&her[j],&her[j+1]); } } } /** * @brief 比较 * * @param px * @param py */ void swap(struct Hero *px, struct Hero *py) // Definition of Swap function { struct Hero temp; temp = *px; *px = *py; *py = temp; } /** * @brief 升序 * * @param her * @param n */ void SortBubbleAsc(struct Hero her[10],int n) { int i,j; struct Hero temp; for(int i=0;i<n-1;i++) { for(int j=0;j<n-i-1;j++) { if(her[j].age>her[j+1].age) swap(&her[j],&her[j+1]); //temp=her[j]; // her[j]=her[j+1]; // her[j+1]=temp; } } } /** * @brief 降序 * * @param her * @param n */ void SortBubbleDesc(struct Hero her[10],int n) { int i,j; struct Hero temp; for(int i=0;i<n-1;i++) { for(int j=0;j<n-i-1;j++) { if(her[j].age<her[j+1].age) swap(&her[j],&her[j+1]); } } } /** * @brief * * @param her * @param n */ void PrintList(struct Hero her[],int n) { for(int i=0;i<n;i++) { printf("信息:%s \t %d\t %s$\n",her[i].name,her[i].age,her[i].sex); } } int main() { puts("hello c language world!涂聚文\t"); printf("涂聚文"); struct Student stu={"张三",18,100}; struct Student *p=&stu; p->score=80; printf("姓名%s 年龄%d 成绩%d \n",p->name,p->age,p->score); printf("输入英雄:\n"); printf("姓名\t 年龄 \t 性别:\n"); int n; struct Hero sz[100]; n=5; for(int i=0;i<n;i++){ scanf("%s %d %s",&sz[i].name,&sz[i].age,&sz[i].sex); } /* qsort函数参数: */ //1 //qsort(sz,n,sizeof(sz[0]),cmp); //2 //SortBubble(sz,5); //3 //SortBubbleDesc(sz,5); //4 SortBubbleAsc(sz,5); //qsort(sz,n,sizeof(sz[0]),cmpSort); printf("\n按年龄升序为:\n\n"); printf("姓名\t 年龄 \t 性别:\n"); for(int i=0;i<n;i++){ printf("%s\t %s \t%d \n",sz[i].name,sz[i].sex,sz[i].age); } struct num1 n1; struct num2 n2; printf("sizeof(n1)=%d,sizeof(n2)%d\n",sizeof(n1),sizeof(n2)); system("pause"); return 0; }
标签:sort,Hero,struct,her,int,brief,param,descending From: https://www.cnblogs.com/geovindu/p/17810597.html