编译代码时出错

时间:2014-09-03 16:40:44

标签: c

这是我程序的最重要部分  我的代码在我的Dev-C++编译器上完美运行,但是当我在ge edit上运行相同的代码时,它显示了三个错误

1.unused variable d
    double d =round(j);
           ^
2. unused variable d
    double d =round(j);
           ^
3.unused variable i
    float i= (float) round(j);
          ^

相同的代码如何在一个编译器中工作但在其他编译器中不起作用?

#include <stdio.h>
#include <math.h>

double round(double d);

int main() {
    float j;
    int c = 0;
    printf("how much change is owed? \n");

    scanf("%f", &j);

    double d = round(j);
    float i = (float)round(j);

    while (i < 0) {
        printf("amount of money \n");

        scanf("%f", &j);
        double d = round(j);
        float i = (float)round(j);
    }
    // more code ...

    return 0;
}

2 个答案:

答案 0 :(得分:0)

不使用这三个变量double d,double d和float i。它们只是定义的,完全不清楚为什么定义它们

  double d =round(j); // <== ???
  float i= (float) round(j);


    while(i<0)

    {    printf("amount of money \n");

        scanf("%f",&j);
        double d =round(j); // <== ???
        float i= (float) round(j); // <== ???
   }

因此错误消息足够清晰。他们是自我解释的。

我认为在最后一个标记语句中你的意思是(在循环内)

    i= (float) round(j);

答案 1 :(得分:0)

肯定。

EG。一些代码是特定于Windows的,其他代码是特定于Linux的(例如处理文件)。因此代码将在Windows编译器而不是Linux编译器上编译。

甚至还有不同版本的C(查找gnu90与c99与c11相比),因为规格随着时间的推移而发生了变化。


你的错误&#34;但是是一个编译器警告您没有使用您指定的3个变量。 这是典型的错误,所以你应该仔细检查。

它是完全有效的C并且仍然应该编译。