我也做过一个类似的这样的程序,可以给你看一下,不知道能不能给你带来什么帮助。
我觉得你的程序里面的指针用的不是很恰当,特别是process函数中的max与min定义为指针不大妥当,还有就是在process函数的后面那里用到t太过于累赘。。
#include
void input(int a[],int n)
{
int i;
for(i=0;i
}
void process(int a[],int n)
{
int max=a[n-1],min=a[0];
int i,mi=0,ma=n-1;
for(i=1;i
if(min>a[i])
{
min=a[i];
mi=i;
}
if(max {
max=a[n-i-1];
ma=n-i-1;
}
}
a[mi]=a[0];
a[0]=min;
a[ma]=a[n-1];
a[n-1]=max;
}
void output(int a[],int n)
{
for(int i=0;i
printf("\n");
}
void main()
{
int a[10],n=10;
input(a,n);
process(a,n);
output(a,n);
}
编译肯定没有问题,可能是在函数声明时出问题的,把自定义函数的声明语句放在main主函数的前面试试呢。
void process(int *p,int n)
函数中的y是重点 系统会提示你没有初始化
如果不初始化的下面交换的语句就会发生错误
在编译上你的程序的确没有错误
建议你 将这个函数中x和y都赋初值0
没错 只是不懂你想用来干啥
编译没错,但你的逻辑有问题