Получение ошибки «ожидаемое выражение перед» = «токен» - PullRequest
0 голосов
/ 22 сентября 2019

Вот код, о котором идет речь:

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);
    }
}

В приведенной выше функции компилятор сообщает мне, что произошла ошибка.Я посмотрел на другие примеры, но я не могу определить, почему я получаю ошибку.По-видимому, ошибка возникает в соответствии с компилятором в первом операторе возврата, где она читается как 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, за исключением того, что операторы возврата немного отличаются.Я использую stdio.h и math.h для некоторых функций (например, pow (t, 3)).

И в ответ на вопросы CFR выглядит так:

#define CFR = 1.8

1 Ответ

5 голосов
/ 22 сентября 2019

Измените это:

#define CFR = 1.8

на это:

#define CFR 1.8

, поскольку знак равенства не является синтаксически правильным.

Более того, измените это:

scanf("%lf", t);

к этому:

scanf("%lf", &t);

, поскольку f имеет тип double.Это в точности то же самое, что и для char c;, для которого вы правильно передали адрес его вызова scanf.

PS: Что должен вернуть main () в C и C ++? int, а не void.

...