题目描述
输入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>
#include <string.h>
void input(int a[])
{
int i;
for(i=0; i<=9; i++)
scanf("%d",&a[i]);
}
void exchange(int a[])
{
int *p=a, i, temp, min, max;
min = a[0];
max = a[0];
for (i = 1; i <= 9; i++)
{
if (min > *(p + i))
min = *(p + i);
}//求最小值
for (i = 1; i <= 9; i++)
{
if (*(p + i) == min)
{
temp = *(p + i);
*(p + i) = *p;
*p = temp;
}
}//找到最小值的位置并与a[0]互换
for (i = 0; i <= 9; i++)
{
if (max < *(p + i))
max = *(p + i);
}//求最大值
for (i = 0; i <= 9; i++)
{
if (*(p + i) == max)
{
temp = *(p + i);
*(p + i) = *(p + 9);
*(p + 9) = temp;
}
}//找到最大值并与a[9]互换
}
void output(int a[])
{
int *p, i;
p = a;
for (i = 0; i <= 9; i++)
printf("%d ", *&a[i]);
printf("\n");
}//输出
int main()
{
int a[20];
input(a);
exchange(a);
output(a);
return 0;
}