Итак, я делаю эту C-программу для расчета стоимости в зависимости от типа транспорта.Код, который вы видите здесь, - это действительно небольшая позиция моего реального кода, но он очень похож на тот, который у меня есть (мне пришлось изменить термины на английский, чтобы облегчить понимание).
ТакжеЯ знаю, как правильно кодировать в Java, и, поскольку C очень похож на Java, я думаю, что моя логика здесь в порядке.Так что я думаю, что здесь просто отсутствует какая-то синтаксическая ошибка, так как я новичок в языке C.
Где я положил «Ожидаемое выражение», где я получаю ошибку в.
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#define MONTANT_METRO_BUS = 8.00
#define MONTANT_OMNIBUS = 9.00;
#define MONTANT_TRAIN_RAPIDE = 10.00;
#define MONTANT_INTEGRE = 12.00;
#define MONTANT_ORANGE_CARD = 65.00;
#define CODE_METRO_BUS 'm'
#define CODE_OMNIBUS 'o'
#define CODE_RAPIDE 'r'
#define CODE_INTEGRE 'i'
#define CODE_CARTE_ORANGE 'c'
void lireTransport();
char codeTransport;
double costTransport;
int main {
lireTransport();
}
void lireTransport() {
printf("Enter transport code: ");
scanf("%c",&codeTransport);
while (codeTransport != CODE_METRO_BUS &&
codeTransport != CODE_OMNIBUS &&
codeTransport != CODE_RAPIDE &&
codeTransport != CODE_INTEGRE &&
codeTransport != CODE_CARTE_ORANGE){
printf("Error! Retry: ");
fflush(stdin);
scanf("%c",&codeTransport);
}
switch (codeTransport) {
case CODE_METRO_BUS: costTransport = COST_METRO_BUS; //Expected expression
break;
case CODE_OMNIBUS: costTransport = COST_OMNIBUS; //Expected expression
break;
case CODE_RAPIDE: costTransport = COST_TRAIN_RAPIDE; //Expected expression
break;
case CODE_INTEGRE: costTransport = COST_INTEGRE; //Expected expression
break;
case CODE_CARTE_ORANGE: costTransport = MONTANT_ORANGE_CARD; //Expected expression
break;
}
}
Но когда я заменяю константы на прямые значения, ошибки не возникает
switch (codeTransport) {
case CODE_METRO_BUS: costTransport = 1.25;
break;
case CODE_OMNIBUS: costTransport = 2.50;
break;
case CODE_RAPIDE: costTransport = 3.75;
break;
case CODE_INTEGRE: costTransport = 4.2;
break;
case CODE_CARTE_ORANGE: costTransport = 5.25
break;
}
}