C语言练习题2 超级详解的冒泡排序

标题 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

超级详解冒泡过程

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值