问题 Z: C语言实习题五——4.用指针实现数据位置调整
时间限制: 1 Sec 内存限制: 128 MB
题目描述
用指针实现:由键盘输入10个整数,将最大的调到最后,最小的调到最前。
输入
10个整数。
输出
最大的调到最后,最小的调到最前。
样例输入
5 8 7 6 9 4 3 2 1 0
样例输出
0 8 7 6 5 4 3 2 1 9
代码实现
#include <stdio.h>
int main() {
int a[10] = { 0 };
for (int i = 0; i < 10; i++) {
scanf("%d", &a[i]);
}
int* max = &a[0];
int* min = &a[0];
for (int i = 1; i < 10; i++) {
if (a[i] > *max) {
max = &a[i];
}
}
int tmp = 0;
tmp = *max;
*max = *((int*)a + 9);
*((int*)a + 9) = tmp;
for (int i = 1; i < 10; i++) {
if (a[i] < *min) {
min = &a[i];
}
}
tmp = *min;
*min = *((int*)a);
*((int*)a) = tmp;
for (int i = 0; i < 10; i++) {
printf("%d", a[i]);
if (i != 9) {
printf(" ");
}
}
return 0;
}