在else语句中获得预期表达式的错误

时间:2017-09-07 04:26:12

标签: if-statement cs50 greedy

react-hot-loader

这是我写的代码。

它的工作正确,但逻辑错误很小。 对于0.32,它只显示季度而不是任何其他硬币。这是为什么? 它工作正常。它最终给出了正确的硬币数量值,但它并没有给出每个硬币的价值。

1 个答案:

答案 0 :(得分:0)

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

int main()
{
    float n;
    do
    { 
        printf("change owed?\n");
        n = get_float();
    }
    while (n<0);
    int z,a,b,c,d;
    z = n*100;
    a = z/25;
    b = (z%25)/10;
    c = ((z%25)%10)/5;
    d = (((z%25)%10)%5)/1;


    if(z>25)
    {
        printf("you will have %i quarter's'\n",a);
    }

    else if(z>10)
    {
        printf("you will have %i dime's'\n",b);
    }

    else if(z>5)
    {
        printf("you will have %i nickel's'\n",c);
    }

    else if(z>1)
    {
        printf("you will have %i pennie's'\n",d);
    }

    if(a>10)
    {
        printf("you will have %i dime's'\n",b);
    }
    else if(a>5)
    {
        printf("you will have %i nickel's'\n",c);
    }
    else if(a>1)
    {
        printf("you will have %i pennie's'\n",d);
    }
    if(b>5)
    {
        printf("you will have %i nickel's'\n",c);
    }
    else if(b>1)
    {
        printf("you will have %i pennie's'\n",d);
    }
    if(c>1)
    {
        printf("you will have %i pennie's'\n",d);
    }


    printf("you will get %i coin's'\n",a+b+c+d);
}

我已经部分缩进了代码并更正了括号用法。检查此代码并尝试维护这样的缩进。在编写程序之前,请确保您知道语法。此外,既然代码更具可读性,您可以尝试自己找出逻辑中的任何错误。