标题 C语言练习题2【数组】
数组实现冒泡排序
请输入将要排序数字的数量、依次输入要排序的一组数字,输出排序前的一组数字,输出排序后的一组数字
具体实现的流程图:
(简单的草图不标准,大概如下:)
代码:
#include <stdio.h>
int main(void){
int num;
printf("请输入本次需要排序的数字的数量(1-20):");
scanf("%d", &num);
while (num>20 || num < 0){
printf("数据量过大或者为负数,重新输入:\n");
printf("请输入本次需要排序的数字的数量(1-20):");
scanf("%d", &num);
}
float array[num];
float tmp;
int i,j,k;
for(i = 0; i < num; i++ )
{
printf("请输入array中第%d个数据:",i+1);
scanf("%f",&array[i]);
}
printf("排序之前:\n");
for(i = 0;i < num;i++)
{
printf("%8.2f",array[i]);
}
for(j = 0;j < num-1;j++)
{
for(k = 0;k < num-j-1;k++)
{
if(array[k] > array[k+1])
{
tmp = array[k];
array[k] = array[k+1];
array[k+1] = tmp;
}
}
}
printf("\n");
printf("排序之后:\n");
for(i = 0;i < num;i++)
{
printf("%8.2f",array[i]);
}
printf("\n");
return 0;
}
结果呈现
MCS@ubuntu:~/Desktop/C语言$ gcc array.c
MCS@ubuntu:~/Desktop/C语言$ ./a.out
请输入本次需要排序的数字的数量(1-20):62
数据量过大或者为负数,重新输入:
请输入本次需要排序的数字的数量(1-20):5
请输入array中第1个数据:10
请输入array中第2个数据:20
请输入array中第3个数据:90
请输入array中第4个数据:30
请输入array中第5个数据:5
排序之前:
10.00 20.00 90.00 30.00 5.00
排序之后:
5.00 10.00 20.00 30.00 90.00
超级详解冒泡过程