编程练习:货币兑换与平均值计算

需积分: 10 1 下载量 183 浏览量 更新于2024-07-22 1 收藏 356KB DOC 举报
这段代码片段提供了两个编程问题的解决方案,分别涉及基本的算术运算和货币兑换计算。以下是每个问题的详细说明: 1. 问题C:平均值 这是一个简单的编程练习,目标是计算三个整数的平均值并保留三位小数。问题描述中提到,输入是三个较小的整数,通过`scanf`函数读取。关键在于正确地将整数转换为`float`类型,因为除法对整数和浮点数的处理方式不同。程序使用`printf`函数输出结果,格式化字符串`%.3f`确保了结果的小数点后有三位数字。 ```c int main() { int a, b, c; scanf("%d%d%d", &a, &b, &c); printf("%.3f", (float)a + (float)b + (float)c / 3); // 注意这里除以3前的括号,避免整数除法 return 0; } ``` 2. 问题D:货币兑换 这个问题涉及到货币换算,需要根据给定的汇率(人民币对美元、欧元和日元)来计算兑换金额。首先,从输入中读取三种外币的汇率(以小数形式),以及人民币和外币的金额(整数)。关键点在于理解和使用浮点数的精确度,因为汇率通常不是整数倍。这里通过乘除法进行计算,并使用`printf`格式化输出结果到小数点后两位。 ```c int main(int argc, char* argv[]) { double a, b, c; // 汇率 int x, y; // 外币和人民币金额 scanf("%lf %lf %lf", &a, &b, &c); scanf("%d", &x); scanf("%d", &y); printf("%.2lf %.2lf %.2lf\n", x * a / 100, x * b / 100, x * c / 100); // 转换为人民币 printf("%.2lf %.2lf %.3lf\n", y * 100 / a, y * 100 / b, y * 100 / c); // 转换为外币 return 0; } ``` 这两个问题都考察了基本的输入输出操作、类型转换和浮点数处理技巧,是初学者在学习C语言时常见的基础练习,有助于理解如何处理数学运算和数据精度问题。