题解 | #牛牛的书#
牛牛的书
https://www.nowcoder.com/practice/30bb969e117b4f6d934d4b60a2af7489
#include <stdio.h> #include <string.h>//忘记哪个头文件了 不知道这个要不要加 #include <stdlib.h> typedef struct { char buf[24]; int price; }BOOK; int main() { int num=0,i=0,j=0; BOOK temp,*p; scanf("%d",&num); p=(BOOK *)calloc(num,sizeof(BOOK)); //判断是否堆区申请成功 if(p==NULL) { perror("calloc error\n"); } //获取输入 for(i=0;i<num;i++) { scanf("%s %d",(p+i)->buf,&(p+i)->price); } //冒泡排序 价格 低->高输出 for(i=0;i<num-1;i++) { for(j=0;j<num-i-1;j++) { if((p+j)->price>(p+j+1)->price) { temp=*(p+j); *(p+j)=*(p+j+1); *(p+j+1)=temp; } } } //遍历价格排序后 的书名 for(i=0;i<num;i++) { printf("%s\n",(p+i)->buf); } if(p != NULL) { free(p); p=NULL; } return 0; }