求解答:我的C++代码出现Runtime Error(SIGTSTP)及超时问题
解决C++代码的超时与SIGTSTP错误
问题原因
核心错误出在内层循环的迭代变量写错了:for(int i=0;i<k;k++) 这里的循环增量是k++,而非i++。这会导致i永远保持初始值0,k不断增大,循环条件i<k永远成立,程序陷入无限循环,最终触发超时(Time limit exceeded),同时可能因系统强制终止产生SIGTSTP信号。
修正后的代码
#include <iostream> using namespace std; int main() { int n,m,k,cert=0; cin>>n>>m>>k; int a; for(int z=0;z<n;z++) { int sum=0; // 将循环增量从k++改为i++ for(int i=0;i<k;i++) { cin>>a; sum+=a; } cin>>a; if(sum>=m && a<=10) cert++; } cout<<cert; return 0; }
修正说明
内层循环改为i++后,i会逐步递增,当i达到k时循环正常终止,这样就能正确读取每组的k个数值,避免无限循环,程序可以按预期完成输入处理并输出结果。
内容的提问来源于stack exchange,提问作者pooaraz
相关产品推荐
相关产品推荐

