| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 473 人关注过本帖
标题:求大神帮我看个简单的问题。我不能理解哎。郁闷
只看楼主 加入收藏
ciscoh3c
Rank: 1
等 级:新手上路
帖 子:14
专家分:7
注 册:2012-11-25
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:9 
求大神帮我看个简单的问题。我不能理解哎。郁闷
#include <stdio.h>
int main (void)
{
    int i;
    int j;   
    char ch ;

    scanf ("%d",&i);
    printf ("i = %d\n",i);

    while ((ch=getchar()) !=  '\n')
        continue;   
     /*int j;    为什么我在这里定义int j;时程序就编译不成功。而在最上面定义就能正常运行呢?*/
    scanf ("%d",&j);
    printf ("j = %d\n",j);


}

}
搜索更多相关主题的帖子: continue include 
2012-11-30 22:53
ciscoh3c
Rank: 1
等 级:新手上路
帖 子:14
专家分:7
注 册:2012-11-25
收藏
得分:0 
AnsiC标准规定变量必须声明在函数最开始的地方,而C99则允许在使用的时候才声明,
 这是我百度到的。是这个原因吗?
2012-11-30 23:14
qunxingw
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:24
帖 子:1676
专家分:7295
注 册:2011-6-30
收藏
得分:5 
可以呀,不过你的循环有什么作用呢。

[ 本帖最后由 qunxingw 于 2012-11-30 23:20 编辑 ]

www.qunxingw.wang
2012-11-30 23:18
hyg6005
Rank: 2
等 级:论坛游民
帖 子:17
专家分:12
注 册:2012-6-5
收藏
得分:10 
程序代码:
#include <stdio.h>
int main (void)
{
    int i;  
    char ch ;
    scanf ("%d",&i);
    printf ("i = %d\n",i);

    while ((ch=getchar()) !=  '\n')
        continue;   
    int j; 
    scanf ("%d",&j);
    printf ("j = %d\n",j);
return 0;
} 
这样是可以运行输出的啊! 问题似乎没有说清楚!是两个int j 还是一个int j在不同的位置呢?而且你检查你的  {}是不是成对的 ,我看见了三个!这个应该是错误的写法吧? 个人不建议把int j放在下面 如果J输入的不是整数类型的话  会出现垃圾字符吧?  说错了  还请高手指点!

 

[ 本帖最后由 hyg6005 于 2012-11-30 23:45 编辑 ]

如果书代表的是钢筋,那么论坛就代表着水泥!
2012-11-30 23:42
aptx48691212
Rank: 2
等 级:论坛游民
帖 子:20
专家分:10
注 册:2012-11-21
收藏
得分:5 
我觉得可以啊
2012-11-30 23:51
ciscoh3c
Rank: 1
等 级:新手上路
帖 子:14
专家分:7
注 册:2012-11-25
收藏
得分:0 
回复 3楼 qunxingw
是一个int j; 只是放的位置不同。放在最上面是可以编译输出。放在我注释的那地方。就提示变量j未定义,我用来把这个程序的后缀改成cpp,放在注释的地方也可以编译过去了。。这个程序本无含义,
2012-12-01 10:19
ciscoh3c
Rank: 1
等 级:新手上路
帖 子:14
专家分:7
注 册:2012-11-25
收藏
得分:0 
以下是引用hyg6005在2012-11-30 23:42:47的发言:

#include  
int main (void)
{
    int i;   
    char ch ;
    scanf ("%d",&i);
    printf ("i = %d\n",i);
 
    while ((ch=getchar()) !=  '\n')
        continue;   
    int j;  
    scanf ("%d",&j);
    printf ("j = %d\n",j);
return 0;
} 这样是可以运行输出的啊! 问题似乎没有说清楚!是两个int j 还是一个int j在不同的位置呢?而且你检查你的  {}是不是成对的 ,我看见了三个!这个应该是错误的写法吧? 个人不建议把int j放在下面 如果J输入的不是整数类型的话  会出现垃圾字符吧?  说错了  还请高手指点!

 
想想。你说的感觉对极了。呵呵!
2012-12-01 10:20
ciscoh3c
Rank: 1
等 级:新手上路
帖 子:14
专家分:7
注 册:2012-11-25
收藏
得分:0 
以下是引用qunxingw在2012-11-30 23:18:41的发言:

可以呀,不过你的循环有什么作用呢。
就向你楼下说的啊。就来去除你第一次输入遗留下来的垃圾字符啊。
2012-12-01 10:21
思小宏
Rank: 1
等 级:新手上路
帖 子:9
专家分:6
注 册:2012-12-1
收藏
得分:0 
试过了,可以运行啊
2012-12-01 12:59
wwfdzh2012
Rank: 2
等 级:论坛游民
帖 子:88
专家分:27
注 册:2012-11-22
收藏
得分:0 
是全局变量和局部变量 的问题吧。。
2012-12-01 16:58
快速回复:求大神帮我看个简单的问题。我不能理解哎。郁闷
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012623 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved