排序的实现

一、选择排序

下面是第一种的代码和运行结果,可以自己把手动输入改为直接赋值 

#include<stdio.h>
#pragma warning(disable:4996)//我使用的是Microsoft Visual Studio,没有这句话会报错
void sort(int x[], int n);
int main()
{
	
	int i,  a[10];
	for (i = 0; i < 10; i++)
	{
		printf("请输入任意十个数,还需要输入:%d个数\n",10-i);
		scanf("%d", &a[i]);
	}
	sort(a, 10);
	printf("从大到小顺序:\n");
	for ( i = 0; i < 10; i++)
	{
		printf("%d\n", a[i]);
	}
	printf("\n");
	return 0;
}

void sort(int x[], int n)
{
	int i, j, k = 0, t;
	for (i = 0; i < n - 1; i++)
	{
		for (j = i+1;j < n; j++)
			if (x[j] > x[k])
				k = j;
		if (k != i)
		{
			t = x[i];
			x[i] = x[k];
			x[k] = t;
		}
	}
}

 

选择排序代码运行结果

二、正反顺序的颠倒

#include<stdio.h>
#pragma warning(disable:4996)//我使用的是Microsoft Visual Studio,没有这句话会报错
void inv(int x[], int n);
int main()
{

	int i, a[10];
	for (i = 0; i < 10; i++)
	{
		printf("请输入任意十个数,还需要输入:%d个数\n", 10 - i);
		scanf("%d", &a[i]);
	}
	inv(a, 10);
	printf("反序输出:\n");
	for (i = 0; i < 10; i++)
	{
		printf("%d\n", a[i]);
	}
	printf("\n");
	return 0;
}
void inv(int x[], int n)//方法一
{
	int temp, *i, *j;
	i = x, j = x + n - 1;
	for (;i<j;i++,j--)
	{
		temp = *i;
		*i = *j;
		*j = temp;
	}

}
//void inv(int x[], int n)//方法二
//{
//	int temp,i,j,m=(n-1)/2;
//	for (i = 0; i <=m; i++)
//	{
//		j = n - 1 - i;
//		temp= x[i];
//		x[i] = x[j];
//		x[j] = temp;
//	}
//	
//}
正反顺序的颠倒代码现象
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

通信汪的美好生活

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值