此题最好能用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; }