鱼C论坛

 找回密码
 立即注册
查看: 2951|回复: 16

输出数组中的全部元素!的不到想要的结果!不知道哪里错了!

[复制链接]
发表于 2012-3-27 00:07:06 | 显示全部楼层 |阅读模式
1鱼币
# include <stdio.h>
int main (void)
{
int *p, i, a[10];
p = a;
for (i = 0;i < 10;++i)
{
  scanf ("%d", p);
}
for (i = 0;i < 10 ;i++,p++)
{
  printf ("%d",*p);
}

return 0;
}

最佳答案

查看完整内容

这样就行了,我对你的代码只是小改了下,这样也让你清楚点,开始时用scanf没有p++,导致,输入的数都是存放在a[0],所以a[1]~a[9]没有被赋值,才导致那个结果,之后我再用p=a使p重新指向了a数组,就是这样/:lol
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-3-27 00:07:07 | 显示全部楼层
  1. #include <stdio.h>
  2. int main (void)
  3. {
  4.         int *p, i, a[10];
  5.         p = a;
  6.         for (i=0; i<10; i++)
  7.         {
  8.                 scanf("%d", p++);
  9.         }
  10.         p = a;
  11.         for (i=0; i<10; i++,p++)
  12.         {
  13.                 printf("%d,",*p);
  14.         }
  15.         return 0;
  16. }
复制代码
这样就行了,我对你的代码只是小改了下,这样也让你清楚点,开始时用scanf没有p++,导致,输入的数都是存放在a[0],所以a[1]~a[9]没有被赋值,才导致那个结果,之后我再用p=a使p重新指向了a数组,就是这样/:lol
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-3-27 03:20:08 | 显示全部楼层
  1. #include <stdio.h>
  2. int main (void)
  3. {
  4.         int *p, i, a[10]={0};
  5.         p = a;
  6.         for (i=0; i<10; i++,p++)
  7.         {
  8.                 scanf("%d,", p);
  9.         }
  10.         p = p-10;
  11.         for (i=0; i<10; i++,p++)
  12.         {
  13.                 printf("%d,",*p);
  14.         }
  15.         printf("\r\n");
  16.         return 0;
  17. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-3-27 03:22:03 | 显示全部楼层
记得输入时候,要在数间用逗号间隔,到10个的时候,敲回车
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-3-27 07:58:24 | 显示全部楼层
数组下标示0-9  不是0-10
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-3-27 09:08:15 | 显示全部楼层
scanf这句有问题 你的一直是在啊a【0】输入 没有输入其他地方
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-3-27 09:35:41 | 显示全部楼层

那么我要是这样写的话!for (i = 0;i < 10;++i)
        {
                scanf ("%d", p++);
为什么还是错的啊!
没道理啊!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-3-27 09:40:33 | 显示全部楼层
本帖最后由 莱瑞古德 于 2012-3-27 09:43 编辑
ㄟ揪心的痛ㄟ 发表于 2012-3-27 09:35
那么我要是这样写的话!for (i = 0;i < 10;++i)
        {
                scanf ("%d", p++);

我的编译是能通过的,并且实验了下结果,也对,应该是编译器问题,对了- -输入数字中间用空格,不是用楼上说的逗号,当然你用TAB和回车也行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-3-27 09:41:55 | 显示全部楼层
莱瑞古德 发表于 2012-3-27 08:30
这样就行了,我对你的代码只是小改了下,这样也让你清楚点,开始时用scanf没有p++,导致,输入的数都是存放 ...

# include <stdio.h>

int main (void)
{
        int *p, i, a[10];
        p = a;
        for (i = 0;i < 10;++i)
        {
                scanf ("%d", p++);
        }
        for (i = 0;i < 10 ;i++,p++)
        {
                printf ("%d",*p);
        }


        return 0;
}

这样的为什么错呢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-3-27 09:44:12 | 显示全部楼层
ㄟ揪心的痛ㄟ 发表于 2012-3-27 09:41
# include

int main (void)

我的编译是能通过的,并且实验了下结果,也对,应该是编译器问题,对了- -输入数字中间用空格,不是用楼上说的逗号,当然你用TAB和回车也行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-3-27 09:47:52 | 显示全部楼层
- -我先去上无聊的数据库课咯- -我的代码没错,不过,注意一下-输入数字中间用空格,不是用3楼说的逗号,当然你用TAB和回车也行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-3-27 09:50:00 | 显示全部楼层
莱瑞古德 发表于 2012-3-27 08:30
这样就行了,我对你的代码只是小改了下,这样也让你清楚点,开始时用scanf没有p++,导致,输入的数都是存放 ...

就是第二个循环之前!为什么还要加个 ,p = a; 不懂!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-3-27 09:59:06 | 显示全部楼层
莱瑞古德 发表于 2012-3-27 09:47
- -我先去上无聊的数据库课咯- -我的代码没错,不过,注意一下-输入数字中间用空格,不是用3楼说的逗号,当 ...

原来还要从新指向的!p = a;非常感谢啊!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-3-27 18:24:45 | 显示全部楼层
莱瑞古德 发表于 2012-3-27 09:47
- -我先去上无聊的数据库课咯- -我的代码没错,不过,注意一下-输入数字中间用空格,不是用3楼说的逗号,当 ...

小弟我还有个问题想请教你下!就是scanf("%d", p++);
加上P++后!输入的第一个数是不是放到了a[1]里面去了啊!
可是编译的结果又是对的!
闹不明白啊!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-3-27 22:32:00 | 显示全部楼层
scanf("%d", &p++);
不是应该这样吗?还是我没认真听课?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-3-30 01:13:08 | 显示全部楼层
离丶dong子 发表于 2012-3-27 22:32
scanf("%d", &p++);
不是应该这样吗?还是我没认真听课?

后面的参数是地址,变量不是地址,所以用&取地址符取得地址,但p本身就是地址了,不需要&
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-3-30 01:13:08 | 显示全部楼层
离丶dong子 发表于 2012-3-27 22:32
scanf("%d", &p++);
不是应该这样吗?还是我没认真听课?

后面的参数是地址,变量不是地址,所以用&取地址符取得地址,但p本身就是地址了,不需要&
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-3-29 20:55

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表