Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我需要帮助让这个程序正确打印我的输出 #包括/*printf和scanf选项*/ #包括 无效兑换(双硬币兑换,整数*四分之一,整数*一角,整数*五分镍币,整数*便士)/*函数原型*/ 内部主(空) { 整数五十=0,二十=0,十=0,五=0,美元=0,四分之一=0,一角=0,五分镍币=0,便士=0; 双倍已付金额=0,到期金额=0,金额变更=0,硬币变更=0;/*申报的价值变量*/ printf(“输入已付金额>”;/*提示用户输入已付金额*/ scanf(“%lf”和已付金额); printf(“输入到期金额>”;/*提示用户输入到期金额*/ scanf(“%lf”和到期金额); 变更金额=已付金额-到期金额;/*待给出的变更金额公式*/ 美元=(金额变化); 硬币兑换=(整数)((金额兑换-(金额兑换))*100+0.5); 硬币兑换=硬币兑换*100; printf(“\n%f\n”,硬币零钱); 零钱(硬币、硬币、硬币、硬币、硬币和硬币); printf(“零钱是五十元:%d$,二十元:%d$,十元:%d$,五元:%d$,美元:%d$,四分之一:%d,一角:%d,五分镍币:%d\ 便士:%d“,五十、二十、十、五、美元、四分之一、一角、五分镍币、便士); 返回(0); } 无效找零(双硬币找零,整数*四分之一,整数*一角,整数*五分镍币,整数*便士) { int q=1,d=1,n=1,p=1; 做{ 如果(硬币兑换>=25){ *季度=*季度+q; 硬币兑换=硬币兑换-25; } 否则,如果(硬币兑换>=10){ *一角硬币=*一角硬币+d; 硬币兑换=硬币兑换-10; } 否则,如果(硬币兑换>=5){ *镍币=*镍币+n; 硬币零钱=硬币零钱-5; } 否则如果(硬币兑换>=1){ *便士=*便士+p; 硬币兑换=硬币兑换-1; } }而(硬币兑换>=1); }_C - Fatal编程技术网

我需要帮助让这个程序正确打印我的输出 #包括/*printf和scanf选项*/ #包括 无效兑换(双硬币兑换,整数*四分之一,整数*一角,整数*五分镍币,整数*便士)/*函数原型*/ 内部主(空) { 整数五十=0,二十=0,十=0,五=0,美元=0,四分之一=0,一角=0,五分镍币=0,便士=0; 双倍已付金额=0,到期金额=0,金额变更=0,硬币变更=0;/*申报的价值变量*/ printf(“输入已付金额>”;/*提示用户输入已付金额*/ scanf(“%lf”和已付金额); printf(“输入到期金额>”;/*提示用户输入到期金额*/ scanf(“%lf”和到期金额); 变更金额=已付金额-到期金额;/*待给出的变更金额公式*/ 美元=(金额变化); 硬币兑换=(整数)((金额兑换-(金额兑换))*100+0.5); 硬币兑换=硬币兑换*100; printf(“\n%f\n”,硬币零钱); 零钱(硬币、硬币、硬币、硬币、硬币和硬币); printf(“零钱是五十元:%d$,二十元:%d$,十元:%d$,五元:%d$,美元:%d$,四分之一:%d,一角:%d,五分镍币:%d\ 便士:%d“,五十、二十、十、五、美元、四分之一、一角、五分镍币、便士); 返回(0); } 无效找零(双硬币找零,整数*四分之一,整数*一角,整数*五分镍币,整数*便士) { int q=1,d=1,n=1,p=1; 做{ 如果(硬币兑换>=25){ *季度=*季度+q; 硬币兑换=硬币兑换-25; } 否则,如果(硬币兑换>=10){ *一角硬币=*一角硬币+d; 硬币兑换=硬币兑换-10; } 否则,如果(硬币兑换>=5){ *镍币=*镍币+n; 硬币零钱=硬币零钱-5; } 否则如果(硬币兑换>=1){ *便士=*便士+p; 硬币兑换=硬币兑换-1; } }而(硬币兑换>=1); }

我需要帮助让这个程序正确打印我的输出 #包括/*printf和scanf选项*/ #包括 无效兑换(双硬币兑换,整数*四分之一,整数*一角,整数*五分镍币,整数*便士)/*函数原型*/ 内部主(空) { 整数五十=0,二十=0,十=0,五=0,美元=0,四分之一=0,一角=0,五分镍币=0,便士=0; 双倍已付金额=0,到期金额=0,金额变更=0,硬币变更=0;/*申报的价值变量*/ printf(“输入已付金额>”;/*提示用户输入已付金额*/ scanf(“%lf”和已付金额); printf(“输入到期金额>”;/*提示用户输入到期金额*/ scanf(“%lf”和到期金额); 变更金额=已付金额-到期金额;/*待给出的变更金额公式*/ 美元=(金额变化); 硬币兑换=(整数)((金额兑换-(金额兑换))*100+0.5); 硬币兑换=硬币兑换*100; printf(“\n%f\n”,硬币零钱); 零钱(硬币、硬币、硬币、硬币、硬币和硬币); printf(“零钱是五十元:%d$,二十元:%d$,十元:%d$,五元:%d$,美元:%d$,四分之一:%d,一角:%d,五分镍币:%d\ 便士:%d“,五十、二十、十、五、美元、四分之一、一角、五分镍币、便士); 返回(0); } 无效找零(双硬币找零,整数*四分之一,整数*一角,整数*五分镍币,整数*便士) { int q=1,d=1,n=1,p=1; 做{ 如果(硬币兑换>=25){ *季度=*季度+q; 硬币兑换=硬币兑换-25; } 否则,如果(硬币兑换>=10){ *一角硬币=*一角硬币+d; 硬币兑换=硬币兑换-10; } 否则,如果(硬币兑换>=5){ *镍币=*镍币+n; 硬币零钱=硬币零钱-5; } 否则如果(硬币兑换>=1){ *便士=*便士+p; 硬币兑换=硬币兑换-1; } }而(硬币兑换>=1); },c,C,对不起,第一次我不是很清楚。我需要的是创建一个基本上是收银机程序。当给出到期金额和用户支付的金额时,我应该收到输出,告诉我应该收到多少50美元的钞票、20美元、10美元、5美元、1美元、25美分、10美分、5美分和1美分作为零钱。由于我是编程新手,您看到的代码是我所知的。我确实需要改进,甚至完全改变它。我真正想做的是找出我的错误,并加以纠正。我希望尽快完成这段代码。我觉得我很接近,但只是错过了。也许我错了,但这就是我来找你们的原因。有几件事: 您有许多未使用的变量:50,20,10,5,美元,等

对不起,第一次我不是很清楚。我需要的是创建一个基本上是收银机程序。当给出到期金额和用户支付的金额时,我应该收到输出,告诉我应该收到多少50美元的钞票、20美元、10美元、5美元、1美元、25美分、10美分、5美分和1美分作为零钱。由于我是编程新手,您看到的代码是我所知的。我确实需要改进,甚至完全改变它。我真正想做的是找出我的错误,并加以纠正。我希望尽快完成这段代码。我觉得我很接近,但只是错过了。也许我错了,但这就是我来找你们的原因。

有几件事:

  • 您有许多未使用的变量:
    50
    20
    10
    5
    美元
    ,等等
  • 这里的台词是:

    coin_change=(int)((amt_change-(amt_change))*100+0.5)
    coin_change=coin_change*100

    你错了。应将其替换为以下内容:

    硬币零钱=(100*零钱)

  • 你听说过
    +=
    /
    -=
    操作符吗?他们会改变这些路线:

    *季度=*季度+q
    coin_change=coin_change-25

    为此:

    *季度+=q
    coin_change-=25


  • 在我修复了这些东西之后,您的代码运行良好。

    我不想为您编写代码,因为这闻起来像是家庭作业,但下面是算法:

    #include <stdio.h>              /*printf and scanf option*/
    #include <math.h>
    
    void change(double coin_change, int *quarters, int *dimes, int *nickels, int *pennies);          /*function protype*/
    
    int main(void)
    {
        int fifties = 0, twenties = 0, tens = 0, fives = 0, dollars = 0, quarters = 0, dimes = 0, nickels = 0, pennies = 0;
        double amt_paid = 0, amt_due = 0, amt_change = 0, coin_change = 0;          /*declared avriables*/
    
        printf("Enter the amount paid> ");                  /*Prompt user to enter amount paid*/
        scanf("%lf", &amt_paid);
    
        printf("Enter the amount due> ");                   /*Prompt user to enter amount due*/
        scanf("%lf", &amt_due);
    
        amt_change = amt_paid - amt_due;                    /*Formula for amount of change to be given*/
        dollars = (amt_change);
    
        coin_change = (int)((amt_change - (amt_change)) * 100 + 0.5);
        coin_change = coin_change * 100;
        printf("\n%f\n", coin_change);
    
        change(coin_change, &quarters, &dimes, &nickels, &pennies);
    
        printf("Change is fifties: %d$, twenties: %d$, tens: %d$, fives: %d$, dollars: %d$, quarters: %d, dimes: %d, nickels: %d,\
               pennies: %d", fifties, twenties, tens, fives, dollars, quarters, dimes, nickels, pennies);  
        return(0);
    }
    
    void change(double coin_change, int *quarters, int *dimes, int *nickels, int *pennies)
    {
        int q = 1, d = 1, n = 1, p = 1;
        do {
            if(coin_change >= 25){
                *quarters = *quarters + q;
                coin_change = coin_change - 25;
            }
            else if (coin_change >= 10) {
                *dimes = *dimes + d;
                coin_change = coin_change - 10;
            }
            else if (coin_change  >=  5) {
                *nickels = *nickels + n;
                coin_change = coin_change - 5;
            }
            else if (coin_change >= 1) {
                *pennies = *pennies + p;
                coin_change = coin_change - 1;
            }
        } while (coin_change >= 1);
    }
    
    “诀窍”是要认识到,你可以用完全相同的方式对待整美元的价值和硬币——编程艺术的一部分是能够找到一个通用的解决方案,你可以重复使用,而不是把每种情况作为一个特例来处理

    您可能希望将更改转换为以美分表示值的整数,这样可以避免浮点算术产生的舍入错误


    祝你好运

    请将您的程序简化为演示错误的最简单的东西,然后给我们输入、预期输出和实际输出。还可以阅读打印“适当数量的美元”有什么不好?听起来不错。每次你这样格式化代码,上帝都会杀了一只小猫。如果这是家庭作业,请给它贴上这样的标签。这是干什么用的<代码>(int)((金额变化-(金额变化))*100+0.5)
    硬币变化
    是少于一美元的变化量。您的公式以美分计算全部变化量。当更改超过50美元时,“运行良好”的代码是否有效?另外,您听说过
    +
    操作符吗
    +*quarter
    @AdamLiss他提供的公式没有考虑超过一个季度的金额,他的代码使用了一个变量
    q
    ,所以我保持原样。我肯定是做错了。所以我需要做一个代码,即使超过50美元,也能给我零钱,用50,20,10,etc@RichardJ.RossIII如何使用这些未使用的变量?
    read_from_keyboard(amount_due)
    read_from_keyboard(amount_paid)
    change = amount_paid - amount_due
    
    for each denomination in (
      fifties, twenties, tens, fives, ones, quarters, dimes, nickels, pennies) {
    
      while (change >= value of denomination) {
         increment counter for denomination
         subtract value of denomination from change
      }
    
      print counter + name of denomination  // Ex: "4 twenties"
    }