C程序求给定金额的面额数

C Program to find the number of denominations for a given amount

现在我快完成我的程序了,但我需要一点帮助,因为数学不正确。

因为我要用欧元链接到 menge,所以我认为脚本会使用 414。但它不知何故使用了另一个数字。

我仍然对 xyz.c 文件和 header.h 文件有点困惑。我是否应该将数据条目放入 .h 文件并将函数放入 .c 文件。我应该如何正确使用它们。

int main()
{
    double euro, ats, sum;
    // Eingabe euro
    printf("Input: ");
    scanf("%lf", &euro);

    ats = 13.760;  //fixierter Wert für die Umrechnung
    // Umrechung Euro mal ats
    sum = euro * ats;
    printf("Ausgabe:\n");
    printf("%.0f Euro entspricht ca. %.0f Schilling\n", euro, sum);

    //Textausgabe mit Geldnoten
    int menge, geldnoten;
    menge = euro;
    // Stueckelung Noten 
    int stueckelung[SIZE] = {200,100,50,20,10,5,2,1};

    for (int i = 0; i < SIZE; i++)
    {
        geldnoten = menge / stueckelung[i];

        if(geldnoten)
        {
            geldnoten = menge % stueckelung[i]; //uebriges Geld

            printf("%d + %d = %d \n", geldnoten, stueckelung[i],
                geldnoten * stueckelung[i]);
        }        
    }

    return 0;
}

输出:

Input: 414
Ausgabe:
414 Euro entspricht ca. 5697 Schilling
14 + 200 = 2800 
14 + 100 = 1400 
14 + 50 = 700 
14 + 20 = 280 
4 + 10 = 40 
4 + 5 = 20 
0 + 2 = 0 
0 + 1 = 0 

输出的目标是这句话: 在 Geldscheinen und Münzen:2 Scheine mit Wert 200、1 Schien mit Wert 10 和 2 Münzen mit Wert 2

翻译为:纸币和硬币:2 张 200 面额的纸币、1 张 10 面额的纸币和 2 个 2 面额的硬币。

我正在努力使用 printf 命令,我应该怎么做?

如果我理解正确的话,你需要将menge减去geldnoten * stueckelung[i](笔记数量的乘积,geldnoten,以及每个音符的值,stueckelung[i]) 在循环的每次迭代中:

    for (int i = 0; i < SIZE; i++)
    {
        geldnoten = menge / stueckelung[i];

        if(geldnoten)
        {
            // geldnoten = menge % stueckelung[i]; // not this
            menge -= geldnoten * stueckelung[i];   // this instead

            printf("%d * %d = %d\n", geldnoten, stueckelung[i],
                geldnoten * stueckelung[i]);
        }
    }

输入 414,上面的代码会产生这个输出:

Input: 414
Ausgabe:
414 Euro entspricht ca. 5697 Schilling
2 * 200 = 400
1 * 10 = 10
2 * 2 = 4