输入一串数字,将其中最小的与第一个调换,最大的与第二个调换,然后输出

时间:2022-03-11 11:23:31
#include<stdio.h>
//输入一串数字,将其中最小的与第一个调换,最大的与第二个调换,然后输出 
//打印输出函数
void print(int a[])
{
	int i;
	for(i=0;i<10;i++)
	{
		printf("%d\t",a[i]);
	}
}

//主函数
int main()
{
	int a[]={2,5,3,1,4,9,6,7,0,8};//自定义数组并附初值

	int max=a[0];
	int min=a[0];//max,min初始化为数组第一个的值

	int maxIndex=0;
	int minIndex=0;//max,min初始化索引值为0

	int i;//for循环变量

	//for循环判断出最大值最小值
	for(i=0;i<10;i++)
	{
		if(max<a[i])
		{
			max=a[i];
			maxIndex=i;
		}
		if(min>a[i])
		{
			min=a[i];
			minIndex=i;
		}
	}

	printf("原来的数组是:\n");
	print(a);

	printf("max=%d\tmin=%d\n",max,min);//输出最大最小值

	//最小的和第一个交换(把最小值的索引位置与第一个值交换位置,最小值已经保存在min中了)
	a[minIndex]=a[0];
	a[0]=min;
	//最大的和第二个交换
	a[maxIndex]=a[1];
	a[1]=max;

	printf("交换后数组是:\n");
	print(a);
	return 0;
}