1.c语言编写一个程序,首先输入将要输入的数据的数量,然后依次输入这些数据,程序将根据用户的选择对输入的数据进行排序,并输出排序结果. 要求: (1)用户首先输入一个整数,表示将要输入的数据的个数定 (2)输入 0 或 1选择排序方式 (3)可输入负数,小数且可正常排序
时间: 2024-09-30 17:11:05 浏览: 8
在 C 语言中,你可以使用如下的代码结构来实现这个需求,这里我们采用了经典的冒泡排序算法作为示例,因为它的实现相对简单,同时也支持整数和浮点数:
```c
#include <stdio.h>
// 冒泡排序函数,接受数组和长度作为参数
void bubble_sort(float arr[], int n) {
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - 1 - i; j++) {
if (arr[j] > arr[j + 1]) {
// 交换元素
float temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
int main() {
int num_of_elements;
printf("请输入将要输入的数据的数量:");
scanf("%d", &num_of_elements);
float data[num_of_elements];
if (num_of_elements <= 0) {
printf("错误:数据数量应大于零。\n");
return 1;
}
// 输入数据并检查是否包含负数或小数
for (int i = 0; i < num_of_elements; i++) {
printf("请输入第 %d 个数(可以输入负数或小数):", i + 1);
scanf("%f", &data[i]);
}
int sort_type;
printf("请选择排序方式(0:升序,1:降序):");
scanf("%d", &sort_type);
// 对数据进行排序
bubble_sort(data, num_of_elements);
// 输出排序后的结果
if (sort_type == 0) {
printf("排序后的数据(升序):\n");
} else if (sort_type == 1) {
printf("排序后的数据(降序):\n");
} else {
printf("错误:无效的排序类型选择。\n");
}
for (int i = 0; i < num_of_elements; i++) {
printf("%.2f ", data[i]);
}
printf("\n");
return 0;
}
```
在这个程序中,用户首先输入数据的数量,然后输入每个数值,并可以选择排序方式。注意,冒泡排序仅适用于升序排列,如果你想得到降序结果,你需要修改 `bubble_sort` 函数中的比较条件。