提问人:rkg125 提问时间:11/15/2023 更新时间:11/15/2023 访问量:48
为什么添加数组所有元素的方法失败,而类似的方法成功 [closed]
Why does one method of adding all the elements of an array fail when similar methods succeed [closed]
问:
我有一系列双打。为了简化示例,我使用长度为 3 的数组。我想添加数组的所有 3 个元素。我以 3 种方式做到这一点。 这是要演示的程序。
#include <stdio.h>
int main()
{
double a[3] = {1.,3.,5.};
double sum1 = a[0]+a[1]+a[2];
int i=0;
double sum2 = (double)a[i]+(double)a[i+1]+(double)a[i+2];
double sum3 = a[i]+a[i+i]+a[i+2];
printf("sum1=%f sum2=%f sum3=%f \n",sum1, sum2, sum3);
}
当你运行它时,你会得到
sum1=9.000000 sum2=9.000000 sum3=7.000000
为什么 sum3 会失败,尤其是当它应该等同于 sum1 时?当数组本身是双精度数组时,为什么我必须将数组的各个元素强制转换为双精度?
答:
1赞
hamza el yousfi
11/15/2023
#1
在行中:
double sum3 = a[i]+a[i+i]+a[i+2];
a[i+i]
应该是 .a[i+1]
下一个:Java:强制转换和泛型
评论
(double)a[i]
double