error C2143:语法错误:缺少";"(在“类型”的前面)

   近期使用VS2012做C程序设计时,出现了这样的错误提示:error C2143:语法错误:缺少";"(在“类型”的前面)。检测代码时发现并没有什么语法上的错误,但是就是无法运行。错误提示如下:

   

   代码如下:     

#include<stdio.h>
#include<stdlib.h>

void main(){
  int n ;
  double sum=0;//定义总数
  scanf("%d",&n);//输入要循环的次数
 
  for (int i=1;i<=n;i++){//循环
	  sum=sum+1.0/i;
  }
  printf("sum=%2f
",sum);//输出结果
  system("pause");//屏幕显示
}
   代码看上去并没有错误,但是如果对C语言熟悉的话就会发现C语言的标准规定标量要在函数开始的时候定义或者声明,而上述代码中是在循环中定义的i变量,这样是不符合C语言规范的。修改如下;

   

#include<stdio.h>
#include<stdlib.h>

void main(){
  int n ,i;//在此定义循环量i
  double sum=0;//定义总数
  scanf("%d",&n);//输入要循环的次数
 
  for ( i=1;i<=n;i++){//循环
	  sum=sum+1.0/i;
  }
  printf("sum=%2f
",sum);//输出结果
  system("pause");//屏幕显示
}
   这样调整好变量声明的位置,程序就可以正常启动运行了。

  

原文地址:https://www.cnblogs.com/victor-grace/p/7253644.html