| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 469 人关注过本帖
标题:先定义后输出一句话没错误,反过来编译就出错了,为什么?
只看楼主 加入收藏
panlanghao
Rank: 1
等 级:新手上路
帖 子:10
专家分:3
注 册:2012-2-14
结帖率:33.33%
收藏
已结贴  问题点数:20 回复次数:9 
先定义后输出一句话没错误,反过来编译就出错了,为什么?
#include<stdio.h>
void main()
{
int n,i,j;
printf("Enter the number of rows:");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
for(j=1;j<i;j++)
printf(" ");
for(j=i;j<=2*n-i;j++)
printf("*");
printf("\n");
}
}
上面的代码编译正常。
可是我将第4行/*int n,i,j;*/与第5行/*printf("Enter the number of rows");*/互换后编译出现如下错误:
Compiling...
1.c
E:\测试数据\1.c(5) : error C2143: syntax error : missing ';' before 'type'
E:\测试数据\1.c(6) : error C2065: 'n' : undeclared identifier
E:\测试数据\1.c(7) : error C2065: 'i' : undeclared identifier
E:\测试数据\1.c(9) : error C2065: 'j' : undeclared identifier
执行 cl.exe 时出错.

1.obj - 1 error(s), 0 warning(s)
求各位指导,首先我是直接两个语句复制粘贴互换的,有错误,然后两句重新输入后一样有错。

[ 本帖最后由 panlanghao 于 2013-4-11 15:41 编辑 ]
搜索更多相关主题的帖子: include number before Enter 
2013-04-11 15:37
fanpengpeng
Rank: 8Rank: 8
来 自:南极洲
等 级:蝙蝠侠
威 望:7
帖 子:299
专家分:849
注 册:2013-2-1
收藏
得分:10 
很早以前的C编译器 是不支持在代码中间定义变量的 必须在函数最前面定义
C++编译器一般都支持在代码中间定义变量 甚至在语句一些语句中间也能定义 比如 for (int i = 0; i < 5; i++);
换个编译器吧
人类都探索火星生命了 你还在磨石头子吗

人生是一场错过 愿你别蹉跎
2013-04-11 15:48
panlanghao
Rank: 1
等 级:新手上路
帖 子:10
专家分:3
注 册:2012-2-14
收藏
得分:0 
回复 2楼 fanpengpeng
我用的是visual C++6.0。
以前都没出现这种问题的,今天不知道为什么
2013-04-11 16:20
fanpengpeng
Rank: 8Rank: 8
来 自:南极洲
等 级:蝙蝠侠
威 望:7
帖 子:299
专家分:849
注 册:2013-2-1
收藏
得分:0 
那我就爱莫能助了 至少在我这边不管怎么换 是没有问题的

人生是一场错过 愿你别蹉跎
2013-04-11 16:34
fanpengpeng
Rank: 8Rank: 8
来 自:南极洲
等 级:蝙蝠侠
威 望:7
帖 子:299
专家分:849
注 册:2013-2-1
收藏
得分:0 
用 C-Free 呗 现在是5.0 又小又好看 代码字体 配色 词法检测 比VC6.0 不知道强多少倍
当然其他方面不跟VC去比 微软自家的东西 当然开发起桌面程序要厉害的多
不过初学 这个IDE调调程序很好的

人生是一场错过 愿你别蹉跎
2013-04-11 16:37
木容木水
Rank: 2
等 级:论坛游民
帖 子:44
专家分:25
注 册:2013-2-24
收藏
得分:0 
回复 2楼 fanpengpeng
windows TC 如何?
2013-04-11 17:01
fanpengpeng
Rank: 8Rank: 8
来 自:南极洲
等 级:蝙蝠侠
威 望:7
帖 子:299
专家分:849
注 册:2013-2-1
收藏
得分:0 
windows TC 更小 不过他多老了

人生是一场错过 愿你别蹉跎
2013-04-11 18:28
邓士林
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:淮河河畔
等 级:贵宾
威 望:61
帖 子:2392
专家分:13384
注 册:2013-3-3
收藏
得分:10 
没有错误啊!不过你的原码中最后少了一个花括号},补上之后,然后进行颠倒,没有问题,代码如下:
#include<stdio.h>
 void main()
 {

 printf("Enter the number of rows:");
  int n,i,j;
 scanf("%d",&n);
 for(i=1;i<=n;i++)
 {
 for(j=1;j<i;j++)
 printf(" ");
 for(j=i;j<=2*n-i;j++)
 printf("*");
 printf("\n");
 }
 }

Maybe
2013-04-11 18:38
子楠
Rank: 3Rank: 3
来 自:武汉
等 级:论坛游侠
帖 子:111
专家分:164
注 册:2013-4-9
收藏
得分:0 
回复 5楼 fanpengpeng
我以前用c-free5.0编译c++程序有错误,说是编译器的错误,然后我换了个c-free4就好了,这怎么回事
2013-04-11 18:48
fanpengpeng
Rank: 8Rank: 8
来 自:南极洲
等 级:蝙蝠侠
威 望:7
帖 子:299
专家分:849
注 册:2013-2-1
收藏
得分:0 
回复 9楼 子楠
我是菜鸟 不了解情况

人生是一场错过 愿你别蹉跎
2013-04-11 20:12
快速回复:先定义后输出一句话没错误,反过来编译就出错了,为什么?
数据加载中...
 
   



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

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