用指针处理数组的问题。。。帮帮忙。
题目:输入十个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。写3个函数:1、输入十个整数,2、进行处理,3、输出10个数。我写的程序运行后这十个整数的顺序还是不变。帮忙找出哪里错了
程序代码:#include"stdio.h"
int a[10];
void input()
{
int i;
printf("请输入10个整数:");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
}
void swap(int *p,int n)
{
int i,t1,t2,temp,max,min;
max=min=*p;
for(i=0;i<n;i++)
{
if(*(p+i)>max){max=*(p+i);t1=i;}
if(*(p+i)<min){min=*(p+i);t2=i;}
}
{temp=*(p+t2);*(p+t2)=*p;*p=temp;}
{temp=*(p+t1);*(p+t1)=*(p+n-1);*(p+n-1)=temp;}
}
void printf(int *p,int n)
{
int i;
for(i=0;i<n;i++)
printf("%5d",*(p+i));
}
void main()
{
int n=10;
input();
printf("十个整数为:");
printf(a,n);
swap(a,n);
printf("\n");
printf("交换后十个整数为:");
printf(a,n);
printf("\n");
}。







