获取“'='标记之前的预期表达式”错误

时间:2019-09-22 19:59:51

标签: c syntax token

这是有问题的代码:

double cf_converter(double t){
    //This function converts from celsius to farenheit
    if (t <= 200 && t >= -200){
        printf("0.00 C ==> 32.00 F");
        return CFR*t+32.00;
    }
    else{
        printf("Invalid Farenheit Temperature\n");
        return pow(t,3);
    }
}

上面的函数是编译器告诉我发生错误的地方。我看过其他示例,但无法确定为什么会收到错误消息。根据编译器,该错误显然是在第一个return语句中发生的,它读取的是CFR * t + 32.00。

void main(){
    //Main Loop
    char c;
    double t, o, input;

    printf("Please enter  F or C: ");
    scanf("%c", &c);

    switch(c){
        case 'c':
        case 'C':
            printf("\nPlease enter a celsius degree number: ");
            scanf("%lf", t);
            o = cf_converter(t);
            break;
        case 'f':
        case 'F':
            printf("\nPlease enter a farenheit degree number: ");
            scanf("%lf", t);
            o = fc_converter(t);
            break;
        default:
            printf("\nThat input is unknown.");
            break;
    }
}

上面是我目前的主要功能。有一个fc_converter()函数与cf_converter函数相同,除了return语句略有不同。我将stdio.h和math.h用于某些功能(例如pow(t,3))。

在回答问题时,CFR如下:

#define CFR = 1.8

1 个答案:

答案 0 :(得分:5)

更改此:

#define CFR = 1.8

对此:

#define CFR 1.8

因为等号在语法上不正确。

此外,更改此:

scanf("%lf", t);

对此:

scanf("%lf", &t);

因为f的类型为double。与此char c;完全相同,您已经正确传递了它的scanf调用的地址。

PS:What should main() return in C and C++? int,而不是void