#include <stdio.h>
#include <stdlib.h>
int summation(int sum,int Num[],int n) {
if (n < 0) {
return sum;
} else {
printf("%d \n", Num[n]);
sum = Num[n] + summation(sum, Num, n - 1);
}
}
int main () {
int i = 0, j = 0 , k = 0, n = 0;
printf("Enter number of numbers: ");
scanf("%d", &n);
int Num[n];
while (i < n) {
//printf("Enter number %d : ", i);
//scanf("%d", &Num[i]);
Num[i] = 1;
i++;
}
int sum = 0;
sum = summation(sum, Num, n);
printf("The sum is %d \n", sum);
}
上述程序仅在3时正常运行 为什么它只产生3,3 ^ 3,3 ^ 9 ??
的结果请帮帮我这个程序只运行3次。现在我计算了3 ^ 1,3 ^ 3和3 ^ 9。对于其他数字,它返回错误的值。
答案 0 :(得分:1)
summation
函数返回值。一个好的编译器会引起你注意这个事实。
summation
,这会导致此行:
sum = Num[n] + ...
读取数组末尾的内容。
这些错误会导致未定义的行为,,这可能会显示三种权力或其他任何内容的奇怪偏好。