根据以下结构体实现按用水量给用户排序:struct user{ char name[10],ID[20];/*用户的姓名和身份证号码*/ double water;/*用水(吨)*/ double monney;/*总共的水费用*/ }u[100];/
时间: 2024-04-23 10:22:47 浏览: 18
可以通过冒泡排序或选择排序实现按用水量给用户排序。以下是冒泡排序的示例代码:
```c
int n; // 用户数量
// 冒泡排序
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (u[j].water < u[j + 1].water) {
// 交换两个用户的信息
struct user temp = u[j];
u[j] = u[j + 1];
u[j + 1] = temp;
}
}
}
```
以上代码将按用水量从大到小排序。如果要按用水量从小到大排序,只需将判断条件改为 `u[j].water > u[j + 1].water`。
相关问题
根据以下结构体实现按用水量给用户排序:struct user{ char name[10],ID[20]; double water; double monney;/ }u[100];
可以使用冒泡排序或者快速排序来实现按用水量给用户排序。
使用冒泡排序实现代码如下:
```c++
void bubbleSort(user u[], int n) {
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - 1 - i; j++) {
if (u[j].water < u[j + 1].water) {
swap(u[j], u[j + 1]);
}
}
}
}
```
使用快速排序实现代码如下:
```c++
int partition(user u[], int low, int high) {
double pivot = u[low].water;
while (low < high) {
while (low < high && u[high].water <= pivot) {
high--;
}
u[low] = u[high];
while (low < high && u[low].water >= pivot) {
low++;
}
u[high] = u[low];
}
u[low].water = pivot;
return low;
}
void quickSort(user u[], int low, int high) {
if (low < high) {
int pivot = partition(u, low, high);
quickSort(u, low, pivot - 1);
quickSort(u, pivot + 1, high);
}
}
```
调用排序函数的方法如下:
```c++
int main() {
// 输入用户信息
int n;
cin >> n;
for (int i = 0; i < n; i++) {
cin >> u[i].name >> u[i].ID >> u[i].water >> u[i].monney;
}
// 按用水量排序
bubbleSort(u, n); // 或 quickSort(u, 0, n - 1);
// 输出排序结果
for (int i = 0; i < n; i++) {
cout << u[i].name << " " << u[i].ID << " " << u[i].water << " " << u[i].monney << endl;
}
return 0;
}
```
struct client { /*客户*/ char name[20]; /*姓名*/ int ordering_number; /*订票量*/ int grade; /*舱位等级*/ client *next;};
这是一个结构体声明,客户的属性包括姓名、订票量和舱位等级,同时还有一个指向下一个结构体的指针。可以使用该结构体来表示一个客户的相关信息。
以下是一个示例代码,用于创建一个结构体并为其属性赋值:
```c
#include <stdio.h>
#include <string.h>
struct client {
char name[20];
int ordering_number;
int grade;
struct client *next;
};
int main() {
struct client c1;
strcpy(c1.name, "Alice");
c1.ordering_number = 3;
c1.grade = 2;
c1.next = NULL;
printf("Name: %s\nOrdering number: %d\nGrade: %d\nNext: %p\n",
c1.name, c1.ordering_number, c1.grade, c1.next);
return 0;
}
```
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![go](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)