感觉指针这快学乱了………怎么都运行不出来求支援#include <stdio.h>
void fun(int*a,int n);
int main()
{
int n,m;
int a[10];
printf("请输入数组元素的个数:");
scanf("%d",&n);
printf("请输入数组:");
for(m=0;m<n;m++)
{
scanf("%d",a[m]);
}
fun(&a,n);
}
void fun(int*x,int y)
{
int i,t;
if(y%2==0)
{
for(i=0;i<=y/2-1/2;i++);
{
t=*(x+i);
*(x+i)=*(x+y/2+1/2+i);
*(x+y/2+1/2+i)=t;
}
}
if(y%2==1)
{
for(i=0;i<y/2-1/2;i++)
{
t=*(x+i);
*(x+i)=*(x+y/2+1/2+i);
*(x+y/2+1/2+i)=t;
}
}
printf("调换后的数组是%d ",*(x+i));
}
第一、scanf的第二个参数应该是地址,而a[m]是数据,改为&a[m]。
第二、函数fun的第一个参数是指针,a就是指针,不用加&。
第三、i是整型,1/2对它来说就是0。for 循环的第二个条件应改为i<y/2。for循环块里的1/2需要相应修改。
第四、同第三类似,需要相应修改。