7744问题在Dev-C++4.9.9.2下的bug

RT,今天把书上P20页的代码敲了一遍,可以肯定是没有错误的,但是Dev-C++给报了个错。

 

  1. #include <stdio.h> 
  2. #include <math.h> 
  3. int main () 
  4. {    
  5.     for(int a = 1; a <= 9; a++) 
  6.     for(int b = 0; b <= 9; b++) 
  7.     { 
  8.             int n = a1100 + b11; 
  9.             int m = floor(sqrt(n) + 0.5);  
  10.             if(mm == n) 
  11.             printf("%d\n", n); 
  12.             } 
  13.             }

Dev-C++报错,提示

5 D:\用户目录\我的文档\C\7744问题(1).c ‘for’ loop initial declaration used outside C99 mode 

百度得知

 

C99标准之外的C标准支持下面这种for 循环的变量i的定义及初始化方式:

  1. int i=1; 
  2. for (i=1; i<10; i++) 
  3.      printf("Hello C!"); 

所以这道题我们应该这么改动一下

  1. #include <stdio.h> 
  2. #include <math.h> 
  3. int main () 
  4. {   int a = 1; 
  5.     int b = 0; 
  6.     for(a = 1; a <= 9; a++) 
  7.     for(b = 0; b <= 9; b++) 
  8.     { 
  9.             int n = a1100 + b11; 
  10.             int m = floor(sqrt(n) + 0.5);  
  11.             if(mm == n) 
  12.             printf("%d\n", n); 
  13.             } 
  14.             } 

就可以了。