#C语言问题 #期望 抛出能被 5 整除的数字中所有偶数的和;

#小白提问

#期望 抛出能被 5 整除的数字中所有偶数的和;

#实际结果会莫名奇妙多个10;

#代码如下

#include 

int a[] = {};
int i = 0;
char ct;

int text1(int a1[],int n);

int main() {

    while(1){
        scanf("%d",&a[i]);
        ct = getchar();
        if(ct == '\n'){
            break;
        }
        i++;
    }

    printf("%d",text1(a,i));
    return 0;
}

int text1(int a1[],int n) {
    int  sum = 0;
    for (int j = 0; j < n; ++j) {
        if(a1[j] % 5 == 0){
            if(a1[j] % 2 == 0){
                sum += a[j];
            }
        }
    }
    return sum;
}


**
#望解答

scanf("%d",&a[i]);
这里数组越界了,因为前面没有初始化

int a[] = {};
这里修改为
int a[1000];

以下内容部分参考ChatGPT模型:


首先,代码中的数组a[]没有初始化,所以不能正确的存储能被5整除的数字,需要使用循环将能被5整除的数字存储到数组中。然后,再使用循环遍历数组,找出所有偶数的和。代码示例如下:

#include <stdio.h>

int main() {
    int a[100];
    int i, sum = 0;

    // 将能被5整除的数字存储到数组中
    for (i = 0; i < 100; i++) {
        if (i % 5 == 0) {
            a[i] = i;
        } else {
            a[i] = -1;  // 不能被5整除的数字用-1表示
        }
    }

    // 计算所有偶数的和
    for (i = 0; i < 100; i++) {
        if (a[i] % 2 == 0 && a[i] != -1) {
            sum += a[i];
        }
    }

    printf("所有能被5整除的偶数的和为:%d\n", sum);

    return 0;
}

如果我的建议对您有帮助、请点击采纳、祝您生活愉快