本人第一次用结构体,不知道哪里错了 ,求解答详细。

本人第一次用结构体,不知道哪里错了 ,求解答详细求帮助,谢谢。

img

scanf("%d\n",&n);中的\n删掉
gets前需要加getchar()接收换行符
12、16行的%d改成%f

#include <stdio.h>

struct book
{
    float yuan;
    char num[30];
};
int main()
{
    struct book books[10],max,min;
    int n;
    scanf("%d",&n);
    for(int i=0;i<n;i++)
    {
        getchar();
        gets(books[i].num);
        scanf("%f",&books[i].yuan);
        if(i==0)
            max = min = books[0];
        else if(max.yuan < books[i].yuan)
            max = books[i];
        else if(min.yuan > books[i].yuan)
            min = books[i];
    }
    printf("%.2f,%s\n%.2f,%s",max.yuan,max.num,min.yuan,min.num);
    return 0;
}

img

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632