不懂为什么程序无法运行
程序无法运行,连输入都输不了,找了大半小时看不出哪里错了,求大佬解答题目链接
https://www.luogu.com.cn/problem/P1161
代码
#include <iostream>
using namespace std;
int main()
{
int lamb={};
int t,n;
double a;
cin>>n;
int i,j; //循环变量
for (i=1; i<=n; i++)
{
cin>>a>>t;
for (j=1; j<=t; j++)
{
if (lamb==0) lamb=1;
else lamb=0;
}
}
for (i=0;; i++)
{
if (lamb==1) //找出开着的灯并输出编号
{
cout<<i;
break;
}
}
return 0;
}
int lamb={};
两百万的数组是不可以的{:10_250:} 小甲鱼的铁粉 发表于 2020-11-6 15:02
两百万的数组是不可以的
为什么答案这串代码能运行呢?
#include<bits/stdc++.h>
using namespace std;
int a,n;
double x,y;
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>x>>y;
for(double j=1;j<=y;++j){
if(a==0) a=1;
else a=0;
}
}
for(int i=1;;i++){
if(a==1){
cout<<i;
break;
}
}
return 0;
} 不爱听课的同学 发表于 2020-11-6 16:32
为什么答案这串代码能运行呢?
首先,
数组初始化错误
int lamb={};
应该写成
int lamb={0};
其次
在函数里分配 2百万 的数组是在栈里分配的,这个数值有点大,导致堆栈溢出 stack overflow
而全局数组是事先分配的静态内存,不使用堆栈,不会发生堆栈溢出。 虽然现在技术进步了,还请不要浪费资源
页:
[1]