Closed. This question is off-topic。它当前不接受答案。
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            想改善这个问题吗? Update the question,因此它是on-topic,用于堆栈溢出。
                        
                        2年前关闭。
                                                                                            
                
        
#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;
}


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

但是在黑客排名中

输入(标准输入)

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 - 〜在stdout上没有响应〜在C语言中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46476207/

10-10 07:37