**已关闭。**此问题为not reproducible or was caused by typos。目前不接受回答。
这个问题是由错字或无法再重现的问题引起的。虽然类似的问题在这里可能是on-topic,但这个问题的解决方式不太可能帮助未来的读者。
5小时前关闭
Improve this question的
我有一个double数组。为了简化这个例子,我使用了一个长度为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);
}
字符串
当你运行它时,
sum 1 =9.000000 sum 2 =9.000000 sum 3 =7.000000
为什么sum3失败了,尤其是当它应该等价于sum1的时候?当数组本身是一个double数组时,为什么我必须将数组的单个元素转换为double?
1条答案
按热度按时间x6492ojm1#
在线:
字符串
a[i+i]
应该是a[i+1]
。