题目链接:http://codeup.cn/problem.php?cid=100000571&pid=4
题目描述
输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。要求用3个函数实现,分别为输入10个数、进行处理、输出10个数。要求使用指针的方法进行处理。
输入
用空格隔开的10个整数。
输出
输出进行题目描述操作之后的10个整数,每个整数之后输出一个空格。
请注意行尾输出换行。
样例输入
1 5 2 4 9 0 3 8 7 6
样例输出
0 5 2 4 6 1 3 8 7 9
代码
#include<stdio.h>
void Print(int a[]){
for(int i = 0; i < 10; i ++)
scanf("%d", &a[i]);
}
void Deal(int a[]){
int temp, *min, *max;
int *p = a;
min = p;
max = p;
for(int i = 1; i < 10; i++){
if(*(p + i) > *max)
max = p + i;
if(*(p + i) < *min)
min = p + i;
}
temp = *min;
*min = a[0];
a[0] = temp;
temp = *max;
*max = a[9];
a[9] = temp;
}
void Scanf(int a[]){
for(int i = 0; i < 10; i ++)
printf("%d ",a[i]);
printf("\n");
}
int main(){
int a[10];
Print(a); //函数Print()实现数字串的输入
Deal(a); //函数Deal()实现交换最大、最小值
Scanf(a); //函数Scanf()实现字符串的输出
return 0;
}