已知全国15个城市的平均工资,用c语言一维数组求排名前20%的城市工资
时间: 2024-10-16 12:03:33 浏览: 32
一维数组在内存中的存放-C语言谭浩强第三版PPT课件
为了计算全国15个城市平均工资排名前20%的城市,首先我们需要创建一个一维数组存储这15个城市的工资数据,然后按照工资从高到低排序。接下来,找出排名在数组长度乘以20%的那个位置及其之后的数据,即可得到前20%的城市工资。这里是一个简单的步骤说明:
1. 定义一个结构体或枚举类型`CitySalary`,包含城市名和工资字段。
2. 创建一维数组`citySalaries`,存储15个城市的数据。
3. 计算平均工资,遍历数组并累加所有城市的工资,除以15得到平均值。
4. 使用选择排序或其他适合的排序算法对`citySalaries`按工资降序排列。
5. 确定排名边界:`rankLimit = citySalaries.length * 0.2`(假设数组长度为15)
6. 输出前`rankLimit`个元素的城市名及工资。
下面是伪代码示例:
```c
#include <stdio.h>
#include <stdlib.h>
// 假设每个结构体包含城市名和工资
typedef struct {
char cityName[20];
double salary;
} CitySalary;
// 排序函数
void sortCitySalaries(CitySalary salaries[], int n) {
// 使用快速排序或插入排序等算法
}
int main() {
CitySalary cities[15]; // 假设已填充15个城市工资
int i, totalSalary = 0;
for (i = 0; i < 15; i++) {
totalSalary += cities[i].salary;
}
double averageSalary = totalSalary / 15;
sortCitySalaries(cities, 15); // 按照工资降序排序
int rankLimit = 15 * 0.2; // 获取前20%的排名
int rank = 0;
for (i = 0; i < rankLimit; i++, rank++) {
printf("第%d名: %s, 平均工资: %.2f\n", rank + 1, cities[i].cityName, cities[i].salary);
}
return 0;
}
阅读全文