飞机零件
#include<stdio.h>
struct dat
{
int y;
int m;
int d;
};
struct planepart
{
char pn[50];
struct dat brodat;
double price;
char no[20];
};
struct planepart input()
{
int i;
struct planepart fpsr;
printf("请输入该零部件的名称 出厂时间 价格 编号:");
scanf("%s %d-%d-%d %lf %s",
&fpsr.pn,
&fpsr.brodat.y,
&fpsr.brodat.m,
&fpsr.brodat.d,
&fpsr.price,
&fpsr.no);
return fpsr;
}
void fun1(struct planepart* fpd)
{
printf("编号:%s;出厂日期:%d年%d月%d日;价格:%.2lf;编号:%s\n",
fpd->pn,
fpd->brodat.y,
fpd->brodat.m,
fpd->brodat.d,
fpd->price,
fpd->no);
}
void fun2(struct planepart* fporder)
{
int i,j;
double priceor=fporder->price;
struct planepart fpdemo1=*fporder;
for (i=0;i<4;i++)
for (j=0;j<4-i;j++)
{
if (fporder[j].price<fporder[j+1].price)
{
fpdemo1=fporder[j];
fporder[j]=fporder[j+1];
fporder[j+1]=fpdemo1;
}
}
printf("\n价格最高的零部件信息:\n");
fun1(fporder);
printf("\n价格依次由高到低的各零部件信息:\n");
for (i=0;i<5;i++)
{
fun1(fporder+i);
}
}
void fun3(struct planepart* pprice)
{
int i;
printf("\n大于五年的零件信息:\n");
for (i=0;i<5;i++)
{
if ((2022-(pprice+i)->brodat.y)>5)
{
(pprice+i)->price/=2.0;
fun1(pprice+i);
}
}
}
int main()
{
int i;
struct planepart fp[5];
for (i=0;i<5;i++)
{
printf("\n请输入第%d个部分的零部件信息:\n",i+1);
fp[i]=input();
}
printf("\n所有零部件信息为:\n");
for (i=0;i<5;i++)
{
fun1(fp+i);
}
fun2(fp);
fun3(fp);
return 0;
}