C:为什么我的嵌套if else语句不起作用

时间:2016-01-30 03:15:39

标签: c if-statement nested

我正在制作一个贪心算法来计算存储在变量中的分数值中的硬币数量。基本上我已经完成了所有的工作,但我无法区分单数和复数的面额,(打印" 1个季度"而不是" 1个季度"例如)和我怎么用顺序如果每个面额的条件,我不能为每个硬币的单数或复数区分做同样的事情,因为它会给我两个季度和一个四分之一而不是任何一个或者,所以我&# 39;我试图使用if else语句,但它说else语句基本上没有if语句与我不理解的相关。我的编译器还说if嵌套在另一个中的if语句有"没有body"出于某种原因。

不要介意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;
}

4 个答案:

答案 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;
}

答案 1 :(得分:0)

删除分号后:

if (n > 49);

答案 2 :(得分:0)

这一行:

if (n > 49);

有一个分号。该分号被视为if语句的真实路径的主体。您还必须得到关于不匹配的else的编译器错误。

仅供参考:您有时会看到一个空表达,就像人们在编写没有身体的循环一样。

答案 3 :(得分:0)

在提问之前搜索得好。 See this answer了解如何编码if..elsenested if

if(
condition)

if(condition)

只允许使用

if
()