美国的货币单位为美元(Dollar),1美元等于100美分。纸币面额最小为1美元,1美元以下用硬币,硬币有25美分(Quarter)、10美分(Dime,一角)、5美分(Nickel)、1美分(Cent 或 penny)。
下面的程序要求输入你收藏的 1美分( penny)、5美分(Nickel)、10美分(Dime)、25美分(Quarter)的硬币的数量,然后对他们进行计算。
#include <stdio.h>
void main ()
{
// 设置变量
int pennies; // 1美分硬币的数量
int nickels; // 5美分硬币的数量
int dimes; // 10美分硬币的数量
int quarters; // 25美分硬币的数量
int temp, left; // 临时变量,将会用于各种计算
// 输入 1美分( penny)、5美分(Nickel)、10美分(Dime)、25美分(Quarter)的硬币的数量
printf("Enter the number of quarters, dimes, nickels, and pennies: ");
scanf("%d %d %d %d", &quarters, &dimes, &nickels, &pennies);
// 以美分(Cent)为单位计算硬币的价值
left = 25 * quarters + 10 * dimes + 5 * nickels + pennies;
// 转换成dollar(美元)
printf("Your collection is worth\n ");
temp = left / 100;
printf("\t%d dollar", temp);
if (temp==1)
printf(", ");
else
printf("s, ");
left = left % 100;
// 转换成quarter(25美分)
temp = left / 25;
printf("%d quarter", temp);
if (temp==1)
printf(", ");
else
printf("s, ");
left = left % 25;
// 转换成dime(10美分)
temp = left / 10;
printf("%d dime", temp);
// 这里本来应该使用条件语句,不过我使用了条件表达式和字符串连接
printf ((temp==1) ? ", " : "s, ");
left = left % 10;
// 转换成nickel(5美分)
temp = left / 5;
printf("%d nickel", temp);
if (temp==1)
printf(", and ");
else
printf("s, and ");
left = left % 5;
// 转换成penny(1美分)
printf("%d penn", left);
if (left==1)
printf("y\n");
else
printf("ies\n");
}
输出结果类似: