此题最好能用struct和指针,有注释就更好啦!实在指针和struct在一起就会乱……拜托了
产品的记录由产品名称,编号,价格,产家构成,n个产品的数据(由键盘输入)由主函数中放入结构体数组中,编写函数fun1, 功能为把价格最高的产品(可能不止一个)放在一个指定的数组中,并返回价格最高的产品个数。并编写函数fun2, 功能为把某种产品的价格降价30%。
#include <stdio.h>
#include <string.h>
struct product
{ char name[30];
int num;
float price;
char producers[30];
};
struct product pro[10];
void fun1(float *p1[10],char *p2[10])
{
int i,j=0;
float *max,*t;
for(i=0;i<10;i++)
{
if(p1[0]<p1[i+1]) max=p1[0];
p1[0]=p1[i+1]; p1[i+1]=max;
}
t=p1[0];
for(i=0;i<10;i++)
{
if(t==p1[i])
{
j++;
printf("%-20s\n%d\n",pro[i].name,j);
}
}
}
void fun2(char *p2[10])
{
char *m;
scanf("%s",&m);
int i;
for(i=0;i<10;i++)
{
if(m==p2[i])
printf("%-10d%-20g%-30s",pro[i].num,pro[i].price,pro[i].producers);
}
}
void main()
{
int i;
float *p1[10];
char *p2[10];
for(i=0;i<10;i++)
scanf("%-20s%-10d%-20g%-30s",pro[i].name,pro[i].num,pro[i].price,pro[i].producers);
p1[10]=&pro[i].price;
p2[10]=&pro[i].name; //想把十个名字存放p2[10]中,以顺序调用
fun1(p1,p2);
fun2(p2);
}
求改错,求指教,如果指出哪里能改变一下思路使得程序简洁易懂就更好了