为什么我的C语言for循环老是报错?

//这样也报错?【文件是.c文件】
#include<stdio.h>
#include<stdlib.h>
void main(){
printf("test");
for(int i =0;i<5;i++){
}
//printf("%d",i);
printf("test");
getchar();
}
1>------ 已启动生成: 项目: Project3, 配置: Debug Win32 ------
1> 测试.c
1>f:\c projects\project3\project3\测试.c(7): error C2143: 语法错误 : 缺少“;”(在“类型”的前面)
1>f:\c projects\project3\project3\测试.c(7): error C2143: 语法错误 : 缺少“)”(在“类型”的前面)
1>f:\c projects\project3\project3\测试.c(7): error C2065: “i”: 未声明的标识符
1>f:\c projects\project3\project3\测试.c(7): warning C4552: “<”: 运算符不起任何作用;应输入带副作用的运算符
1>f:\c projects\project3\project3\测试.c(7): error C2059: 语法错误:“)”
1>f:\c projects\project3\project3\测试.c(7): error C2143: 语法错误 : 缺少“;”(在“{”的前面)
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========

在c文件中是不能在循环里定义变量的(for (int i = 0; i< 5 ; i++))这样编译器会报错,但是.cpp文件可以,c语言不支持循环内定义变量,c++支持这种定义。初学者需要注意一下。追问

那正确的for循环应该怎样写?

追答// test.c
int i;
for (i = 0; i < 5; i++){}

// test.cpp
for (int i = 0; i < 5; i++) {}

以上两种方法都是正确的。你的代码报错是因为在c文件中,使用了c++的语法。

温馨提示:内容为网友见解,仅供参考
无其他回答

c语言 选择排序 for循环代码出错
1)你的选择排序函数明星有问题,第一个for循环结束,只执行了b[i]=*(p+1),数组里成了相同的数,此处应该是p+i更合适。2)上面循环结束后i=51,你后面让j=i+1,后面的循环也就不可能执行,后面的判断compare!=i也就永远成立。3)你要打印移动和交换次数,其中的compare和move和这两项操作没...

C语言中for循环报错
1、在c文件中是不能在循环里定义变量的(for (int i = 1; i< 4 ; i++))这样编译器会报错,但是.cpp文件可以,c语言不支持循环内定义变量,c++支持这种定义。初学者需要注意一下。2、可以参考下图修改:

C语言的for循环出错问题
首先你这个程序的风格就非常的不正确,for后面的{}符号一定要加,不然以后你要找你for循环的有效空间都很困难,程序也很难让别人读懂 其次你的程序没什么问题啊,至于只有当(y-z)+(x*(r-17))==318这个条件成立后才会输出,我这边vc6试了没问题 要是你用别的编译器你可以把for后面的{}符号都加...

为什么我的单片机c语言中for循环有问题呢,如下
这个是不会成功的.因为单片机中的P1不是变量,是端口.给P1赋值是把对应值输出到端口,读取P1是读取端口.两个是完全无关的操作.for(P1=0XFE;P1!=0X7F;P1=left(P1));中P1!=0xF7就对端口P1进行了读取,left(P1)又读取,P1=这样的是输出到端口P1. 读取的情况就不能确定了,如果外围电路没有变化,...

c语言写for循环时,要用break,假如break写在if外面,但是写在for循环内...
第二个代码是错的!为什么第二个是错的呢?因为,你的break写到if外面去了,也就是说,这种情况下,循环永远只执行一遍!因为,只要进循环,无论if的条件如何,break必执行到!无论输入的数是否为素数,都不再进行循环判断!如果写到if里面,只有if条件成立,才跳出循环!即,只有为素数时,才跳出循环...

C语言报错: for() in(51);
出现这个报错的原因是:代码输入过程中出现全角输入,将代码中括号、分号等用半角字符替换即可。根据题目给出的提示,请检查一下第51行代码,将51行代码中出现的全角符号替换成半角字符,或者输了重新输入就行。

C语言中for(int i=0;i<5;i++){}总是报错
因为C99标准以前的C标准是不支持临时变量在for循环中定义的。C99标准就支持这样写。但是目前有些编译器并不怎么愿意支持C99标准,或者默认以C89模式进行编译执行。如果你用的是Visual C++6.0的话,那没办法,那货早停止更新了,不可能支持C99了。如果用的是gcc 的编译器(v3.0以上)的话,默认按C89...

C语言中for(int i=0;i<5;i++){}总是报错
标准c语言这样写会出现语法错误的,如果使用t20,这样写肯定会出错,无法编译,正确的写法是:在函数的开始申明变量,之后再使用变量,比如:void fun(){ int i;...for(i=0;i<9;i++)...} 后来很多集成开发环境,是支持for(int i=0;i<9;i++)这种写法的,不过我的建议还是按照标准的较好,...

单片机c语言for循环出问题了
函数_crol_(b,1);和_cror_(b,1);有返回值,应该定义一个变量赋值或直接 return _crol_(b,1);还有个小问题,delay();定义的是uchar型,赋值竟然是600

菜鸟刚学C语言,使用visual studio,for循环发生错误,请求大神指点_百度...
按说你这都vs2010了不应该还有这个问题啊.你这样修改试试 :把i的定义放到 for 循环的外面 int i;for (i = 0; i < 10; i++){ ...}

相似回答