Closed. This question is off-topic。它当前不接受答案。
想改善这个问题吗? Update the question,因此它是on-topic,用于堆栈溢出。
2年前关闭。
我已经编写了在terminal中运行的代码。
但是在黑客排名中
输入(标准输入)
您的输出(标准输出)
预期产量
编译讯息
现在我该怎么做才能解决问题。
对此:
想改善这个问题吗? 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