爲什麼以下代碼打印出來"0 0 0 0 0 0 0 "
?我期待"1 3 6 10 15 21 28 "
。陣列/指針混淆
#include <iostream>
using namespace std;
void PrefixSum(float * input, float * output, int n){
float sum = 0;
for (int i=0;i<n;i++){
float value = input[i];
sum += value;
output[n] = sum;
}
}
int main(int argc, const char * argv[])
{
float input[] = {1,2,3,4,5,6,7};
float output[] = {0,0,0,0,0,0,0};
PrefixSum(input, output, 7);
for (int i=0;i<7;i++){
cout << output[i] << " ";
}
return 0;
}
應該是'output [i]'。 **在這種情況下,調試器可以幫助你很多**。 – Maroun