输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。输出10个数。(该题请用指针完成)
Input
输入10个整数(保证在int范围内)。
Output
输出处理后的10个整数。
Sample Input
33 2 3 22 5 6 11 8 9 10
Sample Output
2 10 3 22 5 6 11 8 9 33
#include"stdio.h"
void min(int a[])
{
int* min = a, i, t = 0, k;
for(i = 0; i < 10; i++)
{
if(*min > a[i])
{
min = &a[i];
t = i;
}
}
k = a[0];
a[0] = *min;
*(a + t) = k;
}
void max(int a[])
{
int* max = a, i, t = 0, k;
for(i = 0; i < 10; i++)
{
if(*max < a[i])
{
max = &a[i];
t = i;
}
}
k = a[9];
a[9] = *max;
*(a + t) = k;
}
int main()
{
int a[10], i;
for(i = 0; i < 10; i++)
{
scanf("%d", a + i);
}
min(a);
max(a);
for(i = 0; i < 10; i++)
{
printf("%d%c", *(a + i), (i == 9) ? '\n' : ' ');
}
}
刚学完指针,不太清楚指针的好处,反而是为了用指针而卡了一段时间
感觉还不如不用指针 /狗头