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;
}