2016-01-30 2 views
-5

Я делаю жадный алгоритм для вычисления количества монет в значении центов, хранящихся в переменной. У меня было все это в основном, но у меня не было никакого различия между единственными и множественными для деноминаций (например, печать «1 четверти» вместо «1 четверти») и способ, как я делал это с последовательными, если условия для каждой деноминации я не мог бы сделать то же самое для единственной или множественной дифференциации для каждой монеты, так как это дало бы мне две четверти и одну четверть вместо того или или, так что я пытаюсь использовать оператор if else, но в нем говорится, что оператор else в принципе не имеет оператора if, связанного с которым я не понимаю. Мой компилятор также говорит, что оператор if, вложенный в другой, по какой-то причине имеет «тело».C: почему мой вложенный оператор if else не работает

Не возражайте против scanf, я перейду к лучшему методу ввода, как только я получу остальное.

#include <stdio.h> 
#include <stdlib.h> 
#include <math.h> 
int main (void) 
{ 
    int n; 
    scanf("%d",&n); 
    int q = (n/25); 

    if (n > 24) 
    { 
    if (n > 49); 
     printf("%d quarters\n", q); 

    else 
     printf("one quarter\n"); 
    } 
    return 0; 
} 

ответ

1

У вас есть плохой синтаксис в коде. if (n > 49); {. Эта строка неверна, перед вашей открытой скобкой не должно быть полуколонки. Попробуй это.

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

int main(void) { 
    int n; 
    scanf("%d", & n); 
    int q = (n/25); 
    if (n > 24) { 
     if (n > 49) { 
      printf("%d quarters\n", q); 
     } else { 
      printf("one quarter\n"); 
     } 
    } 
    return 0; 
} 
0

Удалите точку с запятой после:

if (n > 49); 
0

Эта линия:

if (n > 49); 

имеет точку с запятой. Эта точка с запятой рассматривается как тело истинного пути оператора if. Вы также должны получить ошибку компилятора о непревзойденном else.

FYI: вы будете иногда видеть пустое выражение, подобное этому, используемое людьми, пишущими петли, которые не имеют тела.

0

Ищите задолго до того, как задать вопрос. See this answer знать о том, как код if..else и nested if

if(
condition) 

if(condition) 

разрешено только NIT

if 
() 
Смежные вопросы