用指针实现,输入6个整数,把最小数与第1个数交换,最大数与最后1个数交换,其它数据不动。输入保证最大值和最小值唯一。请编写3个函数:(1)输入6个数;(2)进行处理函数;(2)输出6个数,每个数占3个宽度,左对齐。
运行无结果
求程序纠错
#include <stdio.h>
void inputdata(int *p);
void swapdata(int *p);
void printdata(int *p);
int main(){
int a[6];
inputdata(a);
swapdata(a);
printdata(a);
return 0;
}
void inputdata(int *p)
{ int i=0;
for(i=0;i<6;i++)
scanf("%d ",*p++);
}
void swapdata(int *p)
{ int i,x,d,min=*p,max=*(p+5),k;
for(i=0;i<6;i++)
{
if(min>*(p+i))
{min=*(p+i);x=i;}
if(max<*(p+i))
{ max=*(p+i);d=i;}
}
k=*p;*p=min;*(p+x)=k;
k=*(p+5);*(p+5)=max;*(p+d)=k;
}
void printdata(int *p)
{ int i;
for(i=0;i<6;i++)
printf("%3d",*p++);
}