输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。
写3个函数:①输入10个数;②进行处理;③输出10个数。要求用指针方法处理。
#include<stdio.h> void exchange(int* a); void printa(int* a); int main(void) { int * a[10]; for (int i = 0; i < 10; i++) { scanf_s("%d", &a[i]); } exchange(a); return 0; } void exchange(int* a) { int i, j, max, min , n = 10 , temp; max = min = a[0]; for (i = 0; i < n; i++) { if (a[i] > max) { max = a[i]; } if (a[i] < min) { min = a[i]; } } printf("max is %d , min is %d\n", max, min); for (i = 0; i < 10; i++) { if (a[i] == min) { temp = a[i]; a[i] = a[0]; a[0] = temp; } if (a[i] == max) { temp = a[i]; a[i] = a[n - 1]; a[n - 1] = temp; } } printa(a); } void printa(int* a) { for (int i = 0; i < 10; i++) { printf("%d ", a[i]); } }
#include <stdio.h> int main() { void input(int*); void max_min_value(int*); void output(int*); int number[10]; input(number); max_min_value(number); output(number); getchar(); return 0; } void input(int *number) { printf("input 10 numbers:"); for (int i = 0; i < 10; i++) scanf_s("%d", &number[i]); } void max_min_value(int *number) { int *max, *min, *p, temp; max = min = number; for (p = number + 1; p < number + 10; p++) { if (*p > *max) max = p; else if (*p < *min) min = p; temp = number[0]; number[0] = *min; *min = temp; if (max == number) max = min; temp = number[9]; number[9] = *max; *max = temp; } } void output(int *number) { int *p; printf("ANS:"); for (p = number; p < number + 10; p++) printf("%d", *p); printf("\n"); }