*我想復制 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;
uj5u.com熱心網友回復:
看這行代碼:
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 ) {
uj5u.com熱心網友回復:
問題在于 sum_of_elements 函式中的 double 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;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/367984.html
