牛客网“程序发生段错误,可能是数组越界,堆栈溢出(比如,递归调用层数太多)”错误的可能原因

本文记录了在牛客网上解决一道编程题时遇到的“段错误”问题及解决过程。通过对代码逐步调试,发现使用数组接收输入并非必要,并通过调整代码成功解决了问题。

晚上在牛客网练习编程,做了一题网易的,很简单的题但是会提示“程序发生段错误,可能是数组越界,堆栈溢出(比如,递归调用层数太多)”,想来想去也不懂为什么,本地可以测试通过,然后既没有数组越界也没有调用递归。。。后面找到了原因,有可能是数组界定太大了,在给数组赋值的时候系统发生错误。

_________________________________________

题目如下:

时间限制:1秒
空间限制:32768K

题目描述
小易有一个长度为N的正整数序列A={A[1], A[2], A[3], …, A[n]}。
牛博士给小易出了一个难题:
对数列A进行重新排列,使数列A满足所有的A[i]*A[i+1](1<=i<=N-1)都是4的倍数。
小易现在需要判断一个数列是否可以重排之后满足牛博士的要求。

输入描述:
输入的第一行为数列的个数t(1<=t<=10)
接下来每两行描述一个数列A,第一行为数列长度n(1<=n<=10^5)
第二行为n个正整数Ai(1<=Ai<=10^9)

输出描述:
对于每个数列输出一行表示是否可以满足牛博士要求,如果可以输出Yes,否则输出No

示例1
输入
2
3
1 10 100
4
1 2 3 4

输出
Yes
No

_______________________________________________________________

原来的解决代码:(个人猜想注释部分是出错原因)

#include<iostream>
using namespace std;

int main(){
	
	int n,line,a[10000];	//这里定义
	cin>>line;
	for(int j = 0 ; j < line ;
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值