题解 | #牛牛的书#

牛牛的书

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;
}

全部评论

相关推荐

05-16 09:20
已编辑
中国民航大学 Java
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务