Feitie6 2020-12-12 16:10 采纳率: 33.3%
浏览 32

为什么输入之后就不执行后面的语句了

 

#include<iostream>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
char s[505][505];
int main()
{
    int w, h, sw = 0, t = 0, markw = 0, mark = 0, l = 0;
    bool mark1 = 0, mark2 = 0;
    cin >> h >> w;
    memset(s, 0, sizeof(s));
    for (int i = 0;i < h;i++)
    {
        for (int j = 0;j < w;j++)
        {
            cin >> s[i][j];
        }
    }

    for (int i = 0;i < h;i++)
    {
        for (int j = 0;j < w;j++)
        {
            if (s[i][j] == '*')
            {
                mark1 = 1;sw++;markw = i;
            }
            if (mark1 && s[i][j] == '.') mark2 = 1;
            if (mark2 && s[i][j] == '*')
            {
                mark1 = 0;mark2 = 0;markw = 0;break;
            }
        }
        if (mark1 && !mark2)
        {
            mark1 = 0;mark2 = 0;t = sw / 2 + 1;
            if (sw % 2 != 0)
            {
                int hw = 0;
                for (int j = 0;j < h;j++)
                {
                    if (s[j][t] == '*')
                    {
                        mark1 = 1;hw++;
                    }
                    if (mark1 && s[j][t] == '.') mark2 = 1;
                    if (mark2 && s[j][t] == '*')
                    {
                        mark1 = 0;mark2 = 0;break;
                    }
                }

                if (mark1 && !mark2)
                {
                    for (int j = 0;j < w;j++)
                    {
                        s[markw][j] = '.';
                    }
                    for (int j = 0;j < h;j++)
                    {
                        s[j][t] = '.';
                    }
                    for (int j = 0;j < h;j++)
                    {
                        for (int k = 0;k < w;k++)
                        {
                            if (s[j][k] == '*')
                            {
                                cout << "NO" << endl;
                                
                            }
                            else mark++;
                        }
                    }
                    l = w * h;
                    if (mark == l)
                    {
                        cout << "YES" << endl;return;
                    }

                }

            }
        }
        sw = 0;
    }
}

  • 写回答

1条回答 默认 最新

  • windhit 2020-12-12 20:51
    关注

    我得吐槽一下你的这个代码风格,循环套循环,循环套if,if又套循环。。。。

    评论

报告相同问题?

悬赏问题

  • ¥15 QQ邮箱过期怎么恢复?
  • ¥15 登录他人的vue项目显示服务器错误
  • ¥15 (标签-android|关键词-app)
  • ¥60 如何批量获取json的url
  • ¥15 comsol仿真压阻传感器
  • ¥15 Python线性规划函数optimize.linprog求解为整数
  • ¥15 llama3中文版微调
  • ¥15 pg数据库导入数据序列重复
  • ¥15 三分类机器学习模型可视化分析
  • ¥15 本地测试网站127.0.0.1 已拒绝连接,如何解决?(标签-ubuntu)