c语言指针,数组中n个数反序排放。 - 爱问答

(爱问答)

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);

}

错误怎么修改c语言指针,数组中n个数反序排放。

程序错的惨不忍睹

最最基础的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个
}


#include <stdio.h>void revertArray(int num[], int n){int *pi = num;   //先到第0个元素int *pj = num + n - 1;; //先到最后一个元素int temp;while (pi < pj){temp = *pi;//这里三个语句是交换*pi =*pj;*pj = temp;pi++;pj--;}}int main(){int array1[10] = {13,54,76,234,76,32,77,93,57,105};int i;revertArray(array1, 10);for (i = 0; i <= 9; i++)printf("%d ", array1[i]);return 0;}


相关标签:c语言

下一篇:电脑启动运行正常,但老是听到独显启动的声音,屏幕没反应了,几秒之后又正常了,什么原因呢?

上一篇:想换显卡求推荐

热门标签:
excel 网盘 破解 word dll
最新更新:
微软重新评估新的Outlook的使用时机 联想推出搭载联发科Helio G80芯片组的Tab M9平板 英特尔创新大赛时间确定! 微软Edge浏览器在稳定渠道中推出Workspaces功能 英伟达RTX4060TiGPU推出MaxSun动漫主题! 谷歌地图为用户提供了街景服务! GameSir 在T4 Kaleid中推出了一款出色的控制器! 微软开始在Windows 11 中测试其画图应用程序的新深色模式! LG电子推出全球首款无线OLED电视 英伟达人工智能芯片崭露头角! Steam Deck可以玩什么游戏-Steam Deck价格限时优惠 雷蛇推出CobraPro鼠标 Kindle电子阅读器可以访问谷歌商店吗 Windows10如何加入组策略 window10图片查看器怎么没有了?