7-1 输出N件航材中价值最高航材的信息,编写C语言程序,输出N件航材中价值最高航材的信息。N用符号常量定义为5,航材信息包括件号(PN)、名称(Designation)、单价(Price)。注意:件号为长整型,名称是没有空格的字符串,最长不超过30个字符,单价为float类型。
时间: 2024-03-16 17:43:36 浏览: 170
基于可靠性数据的航材周转件库存管理优化
下面是一个简单的实现,使用了方案一中的排序方法:
```c
#include <stdio.h>
#include <string.h>
#define N 5
typedef struct {
long pn; // 件号
char designation[31]; // 名称
float price; // 单价
} Aircraft;
// 按照价值降序排序
int cmp(const void *a, const void *b) {
Aircraft *p1 = (Aircraft *)a;
Aircraft *p2 = (Aircraft *)b;
return p2->price > p1->price ? 1 : -1;
}
int main() {
Aircraft aircrafts[N];
printf("请输入%d件航材的信息:\n", N);
for (int i = 0; i < N; i++) {
printf("请输入第%d件航材的信息:\n", i + 1);
printf("件号:");
scanf("%ld", &aircrafts[i].pn);
printf("名称:");
scanf("%s", aircrafts[i].designation);
printf("单价:");
scanf("%f", &aircrafts[i].price);
}
// 按照价值降序排序
qsort(aircrafts, N, sizeof(Aircraft), cmp);
printf("价值最高的航材信息如下:\n");
printf("件号\t名称\t单价\n");
printf("%ld\t%s\t%.2f\n", aircrafts[0].pn, aircrafts[0].designation, aircrafts[0].price);
return 0;
}
```
注意,上述代码中使用了`qsort`函数进行排序,需要包含`stdlib.h`头文件。此外,`scanf`函数读取字符串时需要使用`%s`格式,并且字符串数组的长度应该比最大输入长度大1(用于存储字符串末尾的空字符`\0`)。
阅读全文