c语言指针,数组中n个数反序排放。
错因如下:交换数字.c(8) : warning C4047: '=' : 'int *' differs in levels of indirection from 'int '
代码如下:
#include<stdio.h>
void mian()
{int a[100],*p=a,i=0,j=1,t,*q,n;
for(i=0;i<n;i++)
scanf("%d",p);
scanf("%d",&n);
q=a[n-j]
for(i=0;i<n/2;i++)
{t=*(p+i);*(p+i)=*q;*q=t;
j++;}
for(i=0;i<n;i++)
printf("%d",*p);
}
错误怎么修改
程序错的惨不忍睹
最最基础的main你都拼错了(学习c语言的,每写一个程序都要写一次的)
其次,你写程序前基本流程也是错的
如你的程序,要先输入n
才能逐个输入数据的,你写反了
后面的基本都错了...
在你基础上改好的,你参考下
#include<stdio.h>
void main() ///这个拼错了
{
int a[100],*p=a,i=0,j=1,t,*q,n;
scanf("%d",&n); //这个要写在前面的
for(i=0; i<n; i++)
scanf("%d",p+i); //你要有地址变化的,否则只输入第一个
//你的算法也是错的
// q=a[n-j]; 根本不用的
for(i=0; i<n/2; i++)
{
t=*(p+i);
*(p+i)=*(p+n-1-i);
*(p+n-1-i)=t;
//*q=t;
//j++; //这个更是错的
}
for(i=0; i<n; i++)
printf("%d ",*(p+i)); //你的p不加i,永远只输出第1个
}