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
现在我快完成我的程序了,但我需要一点帮助,因为数学不正确。
因为我要用欧元链接到 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