此题最好能用struct和指针,有注释就更好啦!实在指针和struct在一起就会乱……拜托了
产品的记录由产品名称,编号,价格,产家构成,n个产品的数据(由键盘输入)由主函数中放入结构体数组中,编写函数fun1, 功能为把价格最高的产品(可能不止一个)放在一个指定的数组中,并返回价格最高的产品个数。并编写函数fun2, 功能为把某种产品的价格降价30%。

程序代码:#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);
}
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;
}
