45 调换数组最大最小

45 调换数组最大最小

作者: Turbo时间限制: 1S章节: 一维数组

问题描述 :

输入若干整数,用函数编程将其中最大数与最小数的位置交换,然后输出交换位置后的数组内容。

输入说明 :

分两行输入,第一行为一个非负整数n,表示将要输入的整数个数。第二行为n个整数,整数之间以一个空格分隔。2<=n<=40。

输出说明 :

输出n个整数,表示交换位置后的数组内容,整数之间以一个空格分隔。行首与行尾无多余空格。

输入范例 :

3
40 45 50
输出范例 :

50 45 40

#include<stdio.h>
#include<stdlib.h>
int main(){
	int n,i,j,k,min,temp,max,*p;
	scanf("%d",&n);
	p=(int*)malloc(n*sizeof(int));
	for(i=0;i<n;i++){
		scanf("%d",&p[i]);
	}
	min=max=0;
	for(j=0;j<n;j++){
		if(p[j]>p[max]){
			max=j;
		}
		if(p[j]<p[min]){
			min=j;
		}
	}
	if(min!=max){
		temp=p[min];
		*(p+min)=p[max];
		*(p+max)=temp;
	}
	for(k=0;k<n;k++){
		if(k==n-1){
			printf("%d",p[k]);
		}else{
			printf("%d ",p[k]);
		}
		
	}
	return 0;
}
发布了22 篇原创文章 · 获赞 3 · 访问量 6742

猜你喜欢

转载自blog.csdn.net/weixin_39910081/article/details/104521730
45