算法笔记 Problem E: C语言10.16
Description
输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。要求用3个函数实现,分别为输入10个数、进行处理、输出10个数。要求使用指针的方法进行处理。
Input
用空格隔开的10个整数。
Output
输出进行题目描述操作之后的10个整数,每个整数之后输出一个空格。
请注意行尾输出换行。
Sample Input
1 5 2 4 9 0 3 8 7 6
Sample Output
0 5 2 4 6 1 3 8 7 9
#include<stdio.h>
void swap(int a[]){// 数组作为参数时,在函数中对数组元素的修改就等同于是对原数组元素的修改!
int Max=-1,Min=99;
int position_max,position_min,i;//设置返回最大值与最小值位置的坐标
for(i=0;i<10;i++){
if(*(a+i)>Max){//其实这里不用指针型,用a[i]也对,但题目要求
Max=*(a+i);
position_max=i;
}
if(*(a+i)<Min){
Min=*(a+i);
position_min=i;
}
}
int temp;
temp=*a;
*a=Min;
a[position_min]=temp;
temp=*(a+9);
*(a+9)=Max;
a[position_max]=temp;
}
int main(){
int arry[20]={};
int i;
for(i=0;i<10;i++){//也可以将输入输出单独定义为调用函数
scanf("%d",arry+i);
}
swap(arry);
for(i=0;i<10;i++){
printf("%d ",*(arry+i));
}
return 0;
}