每当输入超过一个数字时,GCC 6.3就会抛出运行时错误。可能的原因是什么?
这是在CodeChef中解决拜特兰第金币问题的初步尝试每当输入超过一个数字时,GCC 6.3就会抛出运行时错误。可能的原因是什么?,c,gcc,gcc-warning,C,Gcc,Gcc Warning,这是在CodeChef中解决拜特兰第金币问题的初步尝试 int main(void) { long long int n = -1; scanf("%lld", &n); while(n != -1){ int b[n]; for(int i=0; i<n; i++) b[i] = -1; for(int i=0; i<n; i++) printf("%d ",b[i]); prin
int main(void) {
long long int n = -1;
scanf("%lld", &n);
while(n != -1){
int b[n];
for(int i=0; i<n; i++) b[i] = -1;
for(int i=0; i<n; i++) printf("%d ",b[i]);
printf("\n");
n = -1;
scanf("%d", &n);
}
return 0;
}
int main(无效){
长整型n=-1;
scanf(“%lld”、&n);
而(n!=-1){
int b[n];
对于(int i=0;i)您的第二个scanf
应该像第一个一样使用%lld
。第二个scanf
的格式说明符错误。您在一次调用scanf时使用“%lld”,在另一次调用scanf时使用“%d”。为什么要调用scanf两次而不是(scanf…==1)
?但是对n
使用long-long-int
并没有多大意义,好像n
的值对于int
太大,那么您可能无论如何都无法成功地在堆栈上分配如此大的数组。