欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【C语言】输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组

程序员文章站 2022-04-08 17:10:35
...
#include<stdio.h>
#include<stdlib.h>

#define N 10

void Swap(int* x, int* y)
{
	int tmp = *x;
	*x = *y;
	*y = tmp;
}

int main()
{
	int a[N] = { 0 };
	printf("请输入数组:");
	for (int i = 0; i < N; i++)
	{
		scanf("%d", &a[i]);
	}
	int begin = 0;
	int end = N - 1;
	int max = begin;
	int min = end;
	for (int i = 0; i < N; i++)
	{
		if (a[i] > a[max])
		{
			max = i;
		}
	}
	for (int i = 0; i < N; i++)
	{
		if (a[i] < a[min])
		{
			min = i;
		}
	}
	Swap(&a[begin], &a[max]);
	//防止最小值是第一个时交换出错
	if (begin == min)
	{
		min = max;
	}
	Swap(&a[N - 1], &a[min]);
	printf("交换后数组为:");
	for (int i = 0; i < N; i++)
	{
		printf("%d ", a[i]);
	}
	printf("\n");
	system("pause");
	return 0;
}
相关标签: C语言