关于C指针问题

Freedom 2010-10-10 12:37:12
#include<stdio.h>
#define M 5
void reverse (int a[])
{
int *p=a,*q=a;
int t=0;
while(*q!='\0')
{
q++;
}
q--;
while(p<q)
{
t=*p;*p=*q;*q=t;
p++;
q--;
}
}
void main()
{
int a[M];
int i=0;
printf("请输入5个数:");
for(i=0;i<M;i++)
{
printf("请输入第%d个数:",i+1);
scanf("%d",&a[i]);
}
reverse(a);
for(i=0;i<M;i++)
{
printf("%d",a[i]);
}
}
指针这里没学好 还请各位看看 目的是实现元素逆置(不重新创建数组;就在原来数组里实现)谢谢了
...全文
81 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Freedom 2010-10-10
  • 打赏
  • 举报
回复
谢谢了 学习了 还有二楼你这高亮代码怎么弄的啊
小魔菇 2010-10-10
  • 打赏
  • 举报
回复
顶2楼
yanzhaozhiqing 2010-10-10
  • 打赏
  • 举报
回复
二楼说的很对 你的程序的确存在那个问题:数组是元素是int的话,需要给出数组中元素个数,他后面没有'\0',因为他不是字符串。
wasx1 2010-10-10
  • 打赏
  • 举报
回复
楼上很犀利啊
xiaoyuer5222 2010-10-10
  • 打赏
  • 举报
回复
数组是元素是int的话,需要给出数组中元素个数

#include<stdio.h>
#define M 5
void reverse (int a[],int n)
{
int *p=a,*q=a+n-1;
int t=0;

while(p<=q)
{
t = *p;
*p =*q;
*q = t;
p++;
q--;
}
}
void main()
{
int a[M];
int i=0;
printf("请输入%d个数:\n",M);
for(i=0;i<M;i++)
{
printf("请输入第%d个数:",i+1);
scanf("%d",&a[i]);
while(getchar() != '\n');
}
reverse(a,M);
for(i=0;i<M;i++)
{
printf("%d\n",a[i]);
}
return;
}

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧