网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
12月05日漏签0天
c++吧 关注:644,956贴子:2,117,117
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 11回复贴,共1页
<<返回c++吧
>0< 加载中...

求大佬,这个程序为什么卡死了

  • 只看楼主
  • 收藏

  • 回复
  • loner
  • |
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#include<iostream>
using namespace std;
int main()
{
int **p,n,sum=0,temp=0;;
cin>>n;
p=new int *[n];
for(int i=0;i<n;i++)
{
p[i]=new int [n];
}
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
cin>>p[i][j];
}
}
while(sum!=n*n)
{sum==0; temp++;
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
if(p[i][j]==2){sum++;}
if(p[i][j]==1)
{
sum++;
if(p[i][j-1]==0&&(j-1)>=0&&(j-1)<n){p[i][j-1]=1;}
if(p[i-1][j]==0&&(i-1)>=0&&(i-1)<n){p[i-1][j]=1;}
if(p[i][j+1]==0&&(j+1)>=0&&(j+1)<n){p[i][j+1]=1;}
if(p[i+1][j]==0&&(i+1)>=0&&(i+1)<n){p[i+1][j]=1;}
}
}
}
}
cout<<temp;
return 0;
}
输入
3
2 0 0
0 1 0
0 0 0
就死了,初学C++的萌新求教


  • c932940089c
  • ?:
    4
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
1、sum==0;看不懂
2、只有p[i][j]=1 or 2时,sum才加1。所以while(sum!=n*n)很有可能死循环。而你输入的那个3就是死循环了


2025-12-05 10:25:14
广告
不感兴趣
开通SVIP免广告
  • TzhMonters
  • =
    2
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
while(sum!=n)是在你的输入下是死循环
不太明白你这程序到底想实现什么,sum==0有什么意义?还有程序结束了你没有回收p的内存。


  • 回枪撩击
  • ,
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
死了就是有死循环
找找看啊~


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 11回复贴,共1页
<<返回c++吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示