0

我目前正在尝试构建一个计算值并将这些值输出到文本文件中的程序。在编译时,我收到以下错误:

'ISO C90 禁止混合减速和代码'

我的编译器是 Quincy 2005,它将第 11 行 (int f=10;) 标记为问题:

#include <stdio.h>


int main()

{

FILE *output;
output = fopen("inductor.txt","a+");

int f=10;
float l, ir, realir;

printf("What is your inductor value (mH)\n");
scanf("%f", &l);

  while (f< 10000000){
  ir=((2*3.141)*f*l);
  realir = ir/1000;

  printf("If Frequency = %d Hz" ,f);
  printf(" Inductive reactance= %f Ohms\n",realir);

  fprintf(output, "%d Hz : %f Ohms\n ", f, realir);


 f=f*10;

 }

fclose(output);

return 0;
}

令人讨厌的是,更改编译器不是一种选择。

4

3 回答 3

3

I believe it's saying you need to declare all variables first, then code.

E.g.:

FILE *output;
int f=10;
float l, ir, realir;


output = fopen("inductor.txt","a+");
printf("What is your inductor value (mH)\n");
于 2013-01-07T17:35:21.793 回答
1

向下移动output = fopen("inductor.txt","a+");到其他变量声明的下方。您必须首先声明所有变量,然后使用它们。

于 2013-01-07T17:34:51.567 回答
0

根据之前的答案,有两种方法可以否定这一点,因为 ISO C90 不允许混合变量声明和代码。已经提到了一种方法:按照建议移动变量声明。

FILE *output;
int f=10;
float l, ir, realir;
output = fopen("inductor.txt","a+");
// More code

还有另一种方式。根据 ISO C90,您只能在块 open 之后在代码中声明变量{。由于您可以随时自由地引入代码块,如果您不想过多地更改代码,您可以简单地启动一个块并将代码放在那里。请注意,以这种方式声明的变量仅在包含它们的块内有效。我强烈推荐第一个选项。

FILE *output;
output = fopen("inductor.txt","a+");
{
int f=10;
float l, ir, realir;
// More code on this variables.
}
// Variables declared in the block previously will not be valid here.
于 2013-01-07T17:43:36.667 回答