用指针处理数组的问题。。。帮帮忙。
题目:输入十个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。写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"); }。