易百教程

编写程序以计算从用户读取的每个值的倒数

编写一个程序,从键盘上读取五个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