输入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");
}