具有无限循环和找零计数器 c 的收银机

标签 c loops break

我已经根据自己的能力完成了程序中的所有操作,但我无法让它告诉我正确的找零金额,对于所有硬币值,它都保持为 0。

当输入的项目数量为0时,我该如何打破无限循环,

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

int main(void)
{
    //variables used
    int penny = 0;
    int nickel = 0;
    int dime = 0;
    int quarter = 0;
    int items = 0.0;
    double paid= 0.0;
    double total = 0.0;
    double price =0.0;
    double change = 0.0;
    int counter =0;

    for (;;)
    {
        printf("Please enter the number of grocery items:");
        scanf("%d", &items);

        for (counter = 1; counter <= items; counter++)
        {
            printf("Please enter the price for item #%d:", counter);
            scanf("%f", &price);

            total += price;

        }

        printf("Please enter amount payed:");
        scanf("%f", &paid);

        change = paid - total;

        while (change > 0)
        {
            if (change >= .25)
            {
                change = change - .25;
                quarter = quarter + 1;
            }
            else if (change >= .1)
            {
                change = change - .1;
                dime = dime + 1;
            }
            else if (change >= .05)
            {
                change = change - .05;
                nickel = nickel + 1;
            }
            else if (change >= .01)
            {
                change = change - .01;
                penny = penny + 1;
            }
        }

        printf("this is your change %d quarters, %d dimes, %d nickels, %d pennies.\n", quarter, dime, nickel, penny);



    }
}

最佳答案

使用 float 而不是 double 。

检查 items == 0 后,Tp 跳出循环。

for (;;)  {
    printf("Please enter the number of grocery items:");
    scanf("%d", &items);

    if (items == 0) {
        break;
    }

    for (counter = 1; counter <= items; counter++) {
        printf("Please enter the price for item #%d:", counter);
        scanf("%f", &price);
        total += price;
    }
    etc...
}   

关于具有无限循环和找零计数器 c 的收银机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28638926/

相关文章:

c - Wireshark 解析器配置参数

vb.net 文本框内的 C 代码

d3.js - 在 D3 强制布局节点标签中插入换行符

c - C 中的质数

powershell - 使用powershell在文本文件中找到特定行后如何停止Get-Content -wait?按需退出管道

c - 如何在 c ( linux ) 中监视字节输入/输出网络流量

C 从文件中读取空格分隔值

shell - 在嵌套的for循环中的shell脚本中运行shell脚本

ios - 如何遍历字典,通过快速按下按钮加载下一个项目

javascript - Nightmare.js 错误 : Search failed: Nothing responds to "goto"