/*输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数交换。
写三个函数:1.输入10个数;2.进行处理;3.输出10个数*/
#include <stdio.h>
//输入10个数
int fun1(int *p)
{
int i;
printf("请输入10个整数:");
for(i = 0;i < 10;i++)
{
scanf("%d",p);
p++;
}
}
//交换
int fun2(int *p)
{
int i;
int *min,*max,t;
int flag1 = 0,flag2 = 0;
min = p;
max = p;
for(i = 1;i < 10;i++)
{
if(*(p+i) < *min)
{
min = (p+i);
flag1 = 1;
}
if(*(p+i) > *max)
{
max = (p+i);
flag2 = 2;
}
}
if(flag1 == 1)
{
t = *min;
*min = *p;
*p = t;
}
if(flag2 == 2)
{
t = *max;
*max = *(p + 9);
*(p + 9) = t;
}
}
//输出10个数
int fun3(int *p)
{
int i;
printf("输出这10个整数:");
for(i = 0;i < 10;i++)
{
printf("%d ",*p);
p++;
}
}
int main()
{
int a[10];
int *p;
p = a;
fun1(p);
fun2(p);
fun3(p);
}
谭浩强C程序设计(第四版)p291第3题