#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/