//8-3输入10个整数,将其中最小的数与第一个数对换,把最大的数和最后一个数对换。写3个函数:1,输入10个数 2,进行处理 3,输出10个数
#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);
return 0;
}
void input(int*number)
{
int i;
printf("input 10 numbers:\n");
for(i=0;i<10;i++,number++)
scanf("%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;
}
else if(max==number)
{
max=min;
temp=number[9];
number[9]=*max;
*max=temp;
}
}
void output(int*number)
{
int*p;
printf("new array:\n");
for(p=number;p<number+10;p++)
printf("%d",*p);
printf("\n");
}
修改处见注释,供参考:
#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);
return 0;
}
void input(int*number)
{
int i;
printf("input 10 numbers:\n");
for(i=0;i<10;i++) //,number++)
scanf("%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;
temp = number[9];
number[9] = *max;
*max = temp;
}
void output(int*number)
{
int*p;
printf("new array:\n");
for(p=number;p<number+10;p++)
printf("%4d",*p); //修改
printf("\n");
}