内牛满面啊,我终于调通了!!!求鼓励,求打气!!!
#define N 10#include<stdio.h>//输入十个整数,把最小的和第一个交换,把最大的和最后一个交换
int main(void)
{
void paixu(int *x,int n);//
void (*p1)(int *x,int n);//指向函数的指针
int a[N],*p;
p=&a[0];
p1=paixu;
for(;p<a+N;)
scanf("%d",p++);
p=&a[0];
(*p1)(a,N);//调用函数
for(p=a;p<a+N;p++)
printf("%d ",*p);
}
void paixu(int *x,int n)
{
int i,z=0;//为了最大值或最小值在第一位赋给z初值0
int k,t=*x;
void swap(int *x,int *y);
for(i=0;i<n-1;i++)
{
if(t>*(x+i+1))
{t=*(x+i+1);z=i+1;}//将小值的位数赋值给z
}
swap(x+z,x);
k=*x;
for(i=0;i<n-1;i++)
{
if(k<*(x+i+1))
{k=*(x+i+1);z=i+1;}
}
swap(x+z,x+n-1);//成功
}
void swap(int *x,int *y)
{
int temp;
temp=*x;
*x=*y;
*y=temp;
}
[ 本帖最后由 haiboself 于 2013-11-1 21:30 编辑 ]