用选择排序法

用选择排序法

你到底是要排序,还是找出最大最小数即可?

int main() {

	int n[10];
	for (int i = 0; i < 10; i++)
	{
		scanf_s("%d", &n[i]);
	}

	int nMin = n[0];
	int nMax = n[0];
	int nMinPos = 0;
	int nMaxPos = 0;
	int nDef = 0;
	for (int i = 1; i < 10; i++)
	{
		if (nMin > n[i])
		{
			nMin = n[i];
			nMinPos = i;
		}
		if (nMax < n[i])
		{
			nMax = n[i];
			nMaxPos = i;
		}
	}
	nDef = nMaxPos - nMinPos;
	printf("max=%d,min=%d,maxPos-minPos=%d", nMax, nMin, nDef);
	return 0;
}

 

代码如下,如有帮助,请采纳,谢谢。

#include <stdio.h>

int main()
{
	int buf[10] = {0};
	printf("请输入10个数据,\n");
	for (int i = 0; i < 10 ;i++)
	{
		printf("请输入第%d个参数:",i+1);
		scanf("%d",&buf[i]);
	}

	//获取最大值和最小值的索引
	int indexMax = 0;
	int indexMin = 0;
	int maxV = buf[0];
	int minV = buf[0];
	for (int i = 1; i < 10 ; i++)
	{
		if (buf[i] > maxV)
		{
			maxV = buf[i];
			indexMax = i;
		}
		if (buf[i] < minV)
		{
			minV = buf[i];
			indexMin = i;
		}
	}
	

	//选择排序
	int index = 0;
	for (int i = 0; i < 9; i++)
	{
		index = i;
		for (int j = i +1; j < 10;j++)
		{
			if (buf[j] < buf[index])
			{
				index = j;
			}
		}

		int tmp = buf[i];
		buf[i] = buf[index];
		buf[index] = tmp;
	}

	for (int i = 0; i < 10; i++)
	{
		printf("%d ",buf[i]);
	}
	printf("\n");


	printf("最大值和最小值的索引差:%d-%d=%d\n",indexMax,indexMin,indexMax - indexMin);


	getchar();
	getchar();
	
	return 0;
}