c - ~ 标准输出没有响应 ~ C 语言

标签 c arrays segmentation-fault

#include<stdlib.h>
#include<stdio.h>
#include<math.h>

int main()
{
    int a,query,in,n,b[n],sum[a];
    sum[1]=0;
    scanf("%d",&query);

    for(a=1;a<=query;a++)
    {
        scanf("%d",&in);
        for(n=1;n<=in;n++)
        {
            b[n]=1+7*(n-1)+6*(n-1)*(n-2)+(n-1)*(n-2)*(n-3);
            sum[a]=sum[a]+b[n];
        }
    }

    for(a=1;a<=query;a++)
    {
        printf("%d\n",sum[a]);
    }       
    return 0;
}

我已经编写了在终端中运行的代码。

但在黑客排名中却显示出

输入(标准输入)

2

2

5

您的输出(标准输出)

~ no response on stdout ~

预期输出

9

225

编译器消息

Segmentation Fault

现在我应该做什么来解决这个问题。

最佳答案

您的变量未初始化。因此,您的程序会调用未定义的行为

例如,您不初始化n,但随后声明int b[n]。数组b的大小是多少?没有人真正知道,因为 n 具有垃圾值。

首先确定变量的值应该是什么,然后开始编码。

<小时/>

数组索引从 0 开始,因此您的 for 循环看起来不太好。

更改此:

for(a=1;a<=query;a++)

对此:

for (a = 0; a < query; a++)

关于c - ~ 标准输出没有响应 ~ C 语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46476207/

相关文章:

c - 在 void * fun() 中出错时返回什么

c - 归并排序循环链表 C

arrays - 用 NULL 子集数组不会删除维度?

javascript - 如果数组中存在匹配文本,则突出显示页面上的文本

linux - 段错误是如何抛出的?

c - 如何在C中复制空字符串中的字符?

arrays - Perl - 具有两个数组参数的函数

c - Memcpy() 适用于越界内存?

c - 段错误 - MPI FFTW

c - C 中的异常处理 - setjmp() 返回 0 有什么用?