#include <stdio.h>
#define N 5
struct product
{
char name[30];
int num;
double price;
char producers[30];
};
struct product pro[N];
int main()
{
int i;
printf("请您输入产品信息,请按下列格式输入:\n");
printf("名称 编号 价格 厂家\n");
for(i=0;i<N;i++)
{
scanf("%20s%10d%20lf%30s",pro[i].name,&pro[i].num,&pro[i].price,pro[i].producers);
//为什么&pro[i].num,&pro[i].price,前面必须得有&,把这个&去掉之后,程序无错,但是不能继续运行
//如果说&pro[i].price是方便下面的程序取地址,但&pro.[i].num前面得有&就不能理解了
//求讲解
}
printf("-------------------------------------------\n");
printf("-------您录入的产品信息如下-------\n");
printf("名称 编号 价格 厂家 \n\n");
for(i=0;i<N;i++)
{
printf("%-20s%-4d%-20.2lf%-30s\n",pro[i].name,pro[i].num,pro[i].price,pro[i].producers);
}
double pri=0.0;
int xh=0;
int ixh=0;
int sxh[N]={0};
for(i=0;i<N;i++)
{
if(pro[i].price>=pri)
{
pri=pro[i].price;
xh=i;
}
}
for(i=0;i<N;i++)
{
if(pro[i].price==pri)
{
sxh[ixh]=i;
ixh++;
}
}
printf("-------------------------------------------\n");
printf("-----您录入的产品中,价格最高的产品如下:------\n");
printf("名称 编号 价格 厂家 \n\n");
for(i=0;i<ixh;i++)
{
printf("%-20s%-04d%-20.2lf%-30s\n",pro[sxh[i]].name,pro[sxh[i]].num,pro[sxh[i]].price,pro[sxh[i]].producers);
}
return 0;
}