编程实现,输入10个浮点型数据存入一维数组,用冒泡排序法对其进行从小到大排序后输出。
时间: 2024-05-01 19:17:27 浏览: 120
好的,这是一个关于编程的问题,我可以为您提供答案。
您可以使用如下的代码实现上述功能:
```python
# 定义一个包含10个浮点型数据的数组
arr = [3.2, 2.1, 1.5, 4.6, 5.7, 6.8, 8.9, 2.3, 1.2, 7.4]
# 冒泡排序法
for i in range(len(arr)-1):
for j in range(len(arr)-1-i):
if arr[j] > arr[j+1]:
arr[j], arr[j+1] = arr[j+1], arr[j]
# 输出排序后的数组
print(arr)
```
运行上述代码,您将会看到输出的结果为从小到大排序的数组。
注意,以上的代码只是演示了冒泡排序的实现,您也可以选择其他排序算法,并将其应用到此问题上。
相关问题
用数组形式存储三个浮点型数据,并通过调用数组的形式完 成下列操作:< 要求:— I 1、从键盘上输入三个数(浮点型数据,要求带小数点), 2、将此三个数按从小到大的顺序排列输出;~ 3、同时还要输出此三个数的“和”、“平均值”;< 4、最后将此三个数的整数部分存在另一个数组 (不同于此 前的数组)中,并输出。
好的,下面是实现该功能的C语言代码:
```c
#include <stdio.h>
#include <stdlib.h>
int main()
{
float nums[3], sum = 0, average;
int i, j, integerNums[3];
// 从键盘上输入三个数
printf("请输入三个数,以空格分隔:\n");
for (i = 0; i < 3; i++) {
scanf("%f", &nums[i]);
integerNums[i] = (int) nums[i]; // 将整数部分存入另一个数组
sum += nums[i];
}
// 冒泡排序,将三个数按从小到大排列
for (i = 0; i < 2; i++) {
for (j = i + 1; j < 3; j++) {
if (nums[i] > nums[j]) {
float temp = nums[i];
nums[i] = nums[j];
nums[j] = temp;
}
}
}
// 计算平均值并输出
average = sum / 3;
printf("排序后的三个数为:%.2f, %.2f, %.2f\n", nums[0], nums[1], nums[2]);
printf("三个数的和为:%.2f\n", sum);
printf("三个数的平均值为:%.2f\n", average);
// 输出存储整数部分的数组
printf("存储整数部分的数组为:%d, %d, %d\n", integerNums[0], integerNums[1], integerNums[2]);
return 0;
}
```
其中,我们使用冒泡排序对输入的三个浮点型数进行排序,并将整数部分存入另一个数组中。最后输出排序后的三个数、它们的和、平均值,以及存储整数部分的数组。
) 编写一个利用冒泡排序法对多个数组中的元素,按照指定数组值排序的函数 myBubbleSort。具体要求为: a) 该函数是一个无返回值的函数; b) 该函数的输入参数为六个:数组元素个数,排序方向、整型数组 1、字符型指针数组、整型数组 2、浮点数组 c) 该函数头为: void myBubbleSort(int num, int dirct,int iarr1[ ], char *country[ ], int iarr2[ ], float farr[ ]) d) 要求: 在 dirct = 1 时, 在该函数内部按照数组 iarr1 元素从大到小的顺序,对所有的四个数组: iarr1[ ], *country[ ], iarr2[ ], farr[ ] 进行排序。 在 dirct = -1 时, 在该函数内部按照数组 iarr1 元素从小到大的顺序,对所有的四个数组: iarr1[ ], *country[ ], iarr2[ ], farr[ ] 进行排序。
下面是一个符合上述要求的 myBubbleSort 函数的示例代码:
```
void myBubbleSort(int num, int dirct, int iarr1[], char *country[], int iarr2[], float farr[]) {
int i, j;
int tempInt;
char *tempChar;
float tempFloat;
for(i = 0; i < num - 1; i++) {
for(j = 0; j < num - 1 - i; j++) {
if((dirct == 1 && iarr1[j] < iarr1[j+1]) || (dirct == -1 && iarr1[j] > iarr1[j+1])) {
// 对 iarr1 数组进行冒泡排序
tempInt = iarr1[j];
iarr1[j] = iarr1[j+1];
iarr1[j+1] = tempInt;
// 对 country 数组进行冒泡排序
tempChar = country[j];
country[j] = country[j+1];
country[j+1] = tempChar;
// 对 iarr2 数组进行冒泡排序
tempInt = iarr2[j];
iarr2[j] = iarr2[j+1];
iarr2[j+1] = tempInt;
// 对 farr 数组进行冒泡排序
tempFloat = farr[j];
farr[j] = farr[j+1];
farr[j+1] = tempFloat;
}
}
}
}
```
该函数使用了冒泡排序的算法,通过双重循环对四个数组进行排序。在每一次循环中,通过比较 iarr1 元素的大小,根据参数 dirct 的取值决定冒泡排序的方向。如果 dirct 等于 1,则按照从大到小的顺序排序,否则按照从小到大的顺序排序。在对四个数组进行排序时,使用了交换变量的方法来实现元素的交换。最后,函数中没有返回值,而是直接修改了输入参数所对应的数组。
阅读全文