用c语言写PTA中的月饼
时间: 2024-11-03 17:14:59 浏览: 12
大学C语言课程中pta习题练习.zip
在 C 语言中编写 PTA (Problem Template Association) 中关于“月饼”的程序,通常会涉及到一些数学计算或简单的数据结构操作。这里假设我们要设计一个简单的月饼分配算法,比如给定一定数量的月饼和用户,每个用户有不同的得分,按照得分高低分配月饼。
```c
#include <stdio.h>
#include <stdlib.h>
// 定义月饼结构体
typedef struct {
int score; // 用户得分
int mooncakes; // 用户得到的月饼数
} User;
// 按照得分排序用户函数
int compare_users(const void *a, const void *b) {
return (*(User*)a).score - (*(User*)b).score;
}
int main() {
int num_users, total_mooncakes;
printf("请输入用户数量和总月饼数量:\n");
scanf("%d %d", &num_users, &total_mooncakes);
// 创建用户数组并输入分数
User users[num_users];
for (int i = 0; i < num_users; i++) {
printf("请输入第%d位用户的得分:", i + 1);
scanf("%d", &users[i].score);
}
// 对用户数组按照得分降序排序
qsort(users, num_users, sizeof(User), compare_users);
// 分配月饼
for (int i = 0; i < num_users && total_mooncakes > 0; i++, total_mooncakes--) {
if (users[i].score >= total_mooncakes) {
users[i].mooncakes = total_mooncakes;
break;
} else {
users[i].mooncakes = users[i].score;
}
}
// 打印结果
printf("月饼分配结果:\n");
for (int i = 0; i < num_users; i++) {
printf("用户%d 得到 %d个月饼\n", i + 1, users[i].mooncakes);
}
return 0;
}
阅读全文