不能输出结果,不知道错哪里了

#include<stdio.h>
struct books{
char name[50];
int prices;
};
int main()
{
int i;
struct books max,min,stu;
printf("输入十本书的名称和定价:");
scanf("%s%d",&stu.name,&stu.prices);
for(i=1;i<=10;i++){
if(i==1){
max=stu;
}else if(max.prices>stu.prices){
min=stu;}
else(max.prices<stu.prices);{
max=stu; }
}
printf("输出定价最低的书的信息Min:%c----%d,定价最高的书的信息Max:%c----%d",min.name,min.prices,max.name,max.prices);
return 0;
}

修改如下,供参考:

#include<stdio.h>
struct books {
    char name[50];
    int  prices;
};
int main()
{
    int i;
    struct books max,min,stu[10]; //struct books max,min,stu;修改
    printf("输入十本书的名称和定价:\n");
    for (i = 0; i < 10; i++) {
              //for (i = 1; i <= 10; i++) {
        scanf("%s %d", stu[i].name, &stu[i].prices);
              //scanf("%s %d", &(stu->name), &(stu->prices));
        if (i == 0) {   //修改
            max = stu[i];
            min = stu[i];
        }
        else
        {
            if (stu[i].prices > max.prices)
            {
                max = stu[i];
            }
            if (stu[i].prices < min.prices)
            {
                min = stu[i];
            }
        }
    }
    printf("输出定价最低的书的信息Min:%s----%d,定价最高的书的信息Max:%s----%d",
                                     min.name, min.prices, max.name, max.prices);
    return 0;
}

不设数组的写法:

#include<stdio.h>
struct books {
    char name[50];
    int  prices;
};
int main()
{
    int i;
    struct books max,min,stu;
    printf("输入十本书的名称和定价:\n");
    for (i = 0; i < 10; i++) {
              //for (i = 1; i <= 10; i++) {
        scanf("%s %d", stu.name, &stu.prices);
              //scanf("%s %d", &(stu->name), &(stu->prices));
        if (i == 0) {
            max = stu;
            min = stu;
        }
        else
        {
            if (stu.prices > max.prices)
            {
                max = stu;
            }
            if (stu.prices < min.prices)
            {
                min = stu;
            }
        }
    }
    printf("输出定价最低的书的信息Min:%s----%d,定价最高的书的信息Max:%s----%d",
                                     min.name, min.prices, max.name, max.prices);
    return 0;
}


#include<stdio.h>
#include<string.h>
#include<malloc.h>

struct books {
    char name[50];
    int prices;
};
int main()
{
    int i;
    struct books* max = (books*)malloc(sizeof(books));
    struct books* min = (books*)malloc(sizeof(books));
    struct books* stu = (books*)malloc(sizeof(books));
    printf("输入十本书的名称和定价:\n");
    for (i = 1; i <= 10; i++) {
        scanf("%s %d", &(stu->name), &(stu->prices));
        if (i == 1) {
            strcpy(max->name, stu->name);
            max->prices = stu->prices;
            strcpy(min->name, stu->name);
            min->prices = stu->prices;
        }
        else
        {
            if (stu->prices > max->prices)
            {
                strcpy(max->name, stu->name);
                max->prices = stu->prices;
            }
            if (stu->prices < min->prices)
            {
                strcpy(min->name, stu->name);
                min->prices = stu->prices;
            }
        }
    }
    printf("输出定价最低的书的信息Min:%s----%d,定价最高的书的信息Max:%s----%d", min->name, min->prices, max->name, max->prices);
    return 0;
}

img

初始化有问题,而且结构体是不能用等号直接赋值的,我给你改完了,就在你源代码的基础上,运行结果也贴出来了,你可以看一下