表达结果未使用 - 我的C代码出了什么问题?

时间:2015-07-21 20:23:00

标签: c cs50

我制作了一个运行“贪婪”算法的程序 - 一个要求所欠变更输入值的程序,并返回在使用尽可能少的硬币时返回该变更所需的最小硬币数量。可以使用的唯一硬币是四分之一,硬币,镍和便士。请查看我的代码并告诉我如何解决显示的错误。

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

int main(void)
{
    float change;
    int counter;
    counter = 0;
    do 
    {
        printf("Please imput how much change is owed: ");
        change = GetFloat();
    }
    while (change<=0); 
    int centv;
    {
        centv = round(change*100);
    }

    int quarter, dime, nickel, penny;
    quarter= 25;
    dime= 10;
    nickel= 5;
    penny= 1;

    {
        while( centv>=quarter )
            {       
                (centv-25);
                counter++;  
            }

        while( centv>=dime )  
            {                
                (centv-10);
                counter++;
            }        
        while( centv>=nickel )
            {            
                (centv-5);
                counter++;
            }
        while( centv>=penny)
            {
                (centv-1);
                counter++;
            }   

        if(centv == 0)
            {
                printf("%i \n", counter);
            }
    }
}

我得到的错误包括行(centv-25)(centv-10)(centv-5)(cent-1)

错误消息是所有这些消息的“表达式结果未使用”。 我该如何解决这个问题?

3 个答案:

答案 0 :(得分:4)

如果您要更改centv的值,则需要centv = centv - 25;

之类的内容

centv - 25应替换为centv = centv - 25,其他行也应如此。

答案 1 :(得分:0)

正如Jens的评论中所提到的,(centv-25)计算了centv - 25的值,但后来却没有做任何事情。 Simarly与(centv-10)(centv-5)(centv-1)。在这四种情况中,您需要将减法结果分配给centv

centv = centv-25;
...
centv = centv-10;
...
centv = centv-5;
...
centv = centv-1;

答案 2 :(得分:0)

您可能打算从25中减去centv等。用compound assignment替换表达式:

centv -= 25;

etc.