编写一个程序,从键盘上读取五个double
类型的值。将它们存储在一个数组中。
计算每个值的倒数。在一个单独的数组中存储倒数。最后输出倒数的值并计算并输出倒数的总和。
提示
值x
的倒数的计算公式为:1.0 / x
。
参考实现代码
#include <stdio.h>
int main(void)
{
const int nValues = 5; // 数据值的数量
double data[nValues]; // 存储数据值
double reciprocals[nValues];
double sum = 0.0; // 存储倒数的总和
printf("输入以空格分隔的五个值: \n");
for (int i = 0; i < nValues; ++i)
scanf("%lf", &data[i]);
printf("您输入的值是:\n");
for (int i = 0; i < nValues; ++i)
printf("%15.2lf", data[i]);
printf("\n");
printf("\n倒数的值是:\n");
for (int i = 0; i < nValues; ++i)
{
reciprocals[i] = 1.0 / data[i];
printf("%15.2lf", reciprocals[i]);
}
printf("\n\n");
for (int i = 0; i<nValues; i++)
{
sum += reciprocals[i]; // 累加倒数之和
if (i > 0)
printf(" + ");
printf("1/%.2lf", data[i]);
}
printf(" = %lf\n", sum);
return 0;
}
执行上面示例代码,得到以下结果:
hema@yiibai:~/book$ gcc main.c
hema@yiibai:~/book$ ./a.out
输入以空格分隔的五个值:
12 22 32 34 13
您输入的值是:
12.00 22.00 32.00 34.00 13.00
倒数的值是:
0.08 0.05 0.03 0.03 0.08
1/12.00 + 1/22.00 + 1/32.00 + 1/34.00 + 1/13.00 = 0.266373