为什么这里输出为0。我是新手(20天经验)
why output is 0 here. i am a newbie (20 days experience)
*我想复制 sum_of_elements 函数中的输入数组作为参数,然后对数组的所有元素求和,但我得到输出 0.
#include <stdio.h>
int i, num, sum;
int sum_of_elements(int arr[]) {
for (i = 0; i < num; i++) {
for (i = 0; sum = 0, i < num; i++) {
sum += arr[i];
}
return sum;
}
}
int main() {
printf("enter number of digits you want to add\n");
scanf("%d", & num);
int arr[num];
for (i = 0; i < num; i++) {
printf("enter number %d\n", i + 1);
scanf("%d", & arr[i]);
}
int total = sum_of_elements(arr);
printf("%d", total);
return 0;
看这行代码:
for (i = 0; sum = 0, i < num; i++) {
这会将 sum
重置为 0 每个循环。
应该是
for (i = 0, sum = 0; i < num; i++) {
但这样做可能更好:
sum = 0;
for (i = 0; i < num; i++) {
问题出在您的 sum_of_elements 函数中的双 for 循环。
删除多余的 for 循环,解决了错误。
#include <stdio.h>
int i, num, sum;
int sum_of_elements(int arr[]) {
for (i = 0; i < num; i++) {
sum += arr[i];
}
return sum;
}
int main() {
printf("enter number of digits you want to add\n");
scanf("%d", & num);
int arr[num];
for (i = 0; i < num; i++) {
printf("enter number %d\n", i + 1);
scanf("%d", &arr[i]);
}
int total = sum_of_elements(arr);
printf("%d", total);
return 0;
}
*我想复制 sum_of_elements 函数中的输入数组作为参数,然后对数组的所有元素求和,但我得到输出 0.
#include <stdio.h>
int i, num, sum;
int sum_of_elements(int arr[]) {
for (i = 0; i < num; i++) {
for (i = 0; sum = 0, i < num; i++) {
sum += arr[i];
}
return sum;
}
}
int main() {
printf("enter number of digits you want to add\n");
scanf("%d", & num);
int arr[num];
for (i = 0; i < num; i++) {
printf("enter number %d\n", i + 1);
scanf("%d", & arr[i]);
}
int total = sum_of_elements(arr);
printf("%d", total);
return 0;
看这行代码:
for (i = 0; sum = 0, i < num; i++) {
这会将 sum
重置为 0 每个循环。
应该是
for (i = 0, sum = 0; i < num; i++) {
但这样做可能更好:
sum = 0;
for (i = 0; i < num; i++) {
问题出在您的 sum_of_elements 函数中的双 for 循环。
删除多余的 for 循环,解决了错误。
#include <stdio.h>
int i, num, sum;
int sum_of_elements(int arr[]) {
for (i = 0; i < num; i++) {
sum += arr[i];
}
return sum;
}
int main() {
printf("enter number of digits you want to add\n");
scanf("%d", & num);
int arr[num];
for (i = 0; i < num; i++) {
printf("enter number %d\n", i + 1);
scanf("%d", &arr[i]);
}
int total = sum_of_elements(arr);
printf("%d", total);
return 0;
}