【问题标题】:segmentation fault In c solving the addition of big numbers分段错误在c中解决大数字的加法
【发布时间】:2018-05-20 15:12:56
【问题描述】:

今天我开始关注黑客等级。问题如下。

计算并打印数组中元素的总和,记住其中一些整数可能非常大。 输入格式 输入的第一行由一个整数组成

。 下一行包含

数组中包含的以空格分隔的整数。 输出格式 打印数组中元素的整数和。 约束

示例输入

5
1000000001 1000000002 1000000003 1000000004 1000000005
Output 
5000000015

注意:当我们将多个整数值相加时,结果总和可能会超出上述范围。您可能需要在 C/C++ 中使用 long long int 或在 Java 中使用 long 数据类型来存储这些总和。

我给出的答案是

#include <stdio.h>
#include <stdlib.h>
int main (){
    int n ;
    int arr1[n];
    long long int arrcount ;
    scanf("%d" , n);
    for(int i = 0; i <= n; i++) {
        scanf("%d" , &arr1[n]);
    }
    for( int i = 0; i <=n; i++) {
        arrcount = arrcount + arr1[n];
    }
    printf("%li" , arrcount);
}

但编译器消息是“分段错误”

【问题讨论】:

    标签: c segmentation-fault


    【解决方案1】:

    这是一个有趣的陈述顺序:

    int n ;
    int arr1[n];
    long long int arrcount ;
    scanf("%d" , n);
    

    如果您在第二行使用n 设置数组大小,但在第四行仅提供一个值to n,您认为使用的是什么值数组的大小?

    【讨论】:

      【解决方案2】:

      看看你的 for 循环。如果数组索引为零,那么数组的最后一个元素是什么?

      根据您提供的代码,当 n = 5 时,您从 0 到 5 迭代 i。您正在读取多少个元素,您要在总数中添加多少?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-06-26
        • 2021-07-18
        • 2015-07-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多