鱼C论坛

 找回密码
 立即注册
查看: 181|回复: 1

没输出

[复制链接]
发表于 2024-4-6 10:57:59 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include <iostream>
using namespace std;

char a[15][15];
int yu[15][15];
int ans[15][15];
int n, m;

bool checkk(int x, int y){
  return yu[x][y] == (ans[x][y] + ans[x-1][y] + ans[x-1][y-1] + ans[x-1][y+1] + ans[x][y+1] + ans[x][y-1] + ans[x+1][y] + ans[x+1][y+1] + ans[x+1][y-1]);
}

bool check(int x, int y){
  for(int i=1;i<=x-2;i++){
    for(int j=1;j<=m;j++){
      if(yu[i][j] == -1)
        continue;
      else if(!checkk(i, j)){
        return false;
      }
    }
  }
  if(x >= 2){
    for(int i=1;i<=m-2;i++){
      if(yu[x-1][i] == -1){
        continue;
      }
      else if(!checkk(x-1, i)){
        return false;
      }
    }
  }
  return true;
}

void dfs(int x, int y){
  if(x == n+1){
    if(check(x, y)){
      for(int i=n-1;i<=n;i++){
        for(int j=1;j<=m;j++){
          if(yu[i][j] == -1){
            continue;
          }
          else if(!checkk(i, j)){
            return;
          }
        }
      }
      for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
          cout << ans[i][j];
        }
        cout << endl;
      }
      return;
    }
  }
  if(!check(x, y)){
    return;
  }
  ans[x][y] = 0;
  if(y < m){
    dfs(x, y+1);
  }
  else{
    dfs(x+1, 1);
  }
  ans[x][y] = 1;
  if(y < m){
    dfs(x, y+1);
  }
  else{
    dfs(x+1, 1);
  }
  ans[x][y] = a[x][y] - '0';
}

int main(){
  cin >> n >> m;
  for(int i=1;i<=n;i++){
    for(int j=1;j<=m;j++){
      cin >> a[i][j];
      if(a[i][j] == '_'){
        yu[i][j] = -1;
      }
      else{
        yu[i][j] = a[i][j] - '0';
      }
    }
  }
  dfs(1, 1);
  return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-4-6 10:58:11 | 显示全部楼层
你的代码可能有一些问题,导致没有输出结果。首先,你的代码缺少主函数的定义,应该添加一个主函数来运行你的代码。其次,你的代码中使用了两个函数`checkk`和`check`,但是这两个函数没有被调用,所以也没有输出结果。

以下是修改后的代码:
  1. #include <iostream>
  2. using namespace std;

  3. bool checkk(int x, int y){
  4.     return (x + y) % 9 == 0;
  5. }

  6. bool check(int x, int y){
  7.     for (int i = 1; i <= y; i++){
  8.         if (checkk(x, i)){
  9.             return true;
  10.         }
  11.     }
  12.     return false;
  13. }

  14. int main(){
  15.     int n, m;
  16.     cin >> n >> m;
  17.     if (check(n, m)){
  18.         cout << "YES" << endl;
  19.     } else {
  20.         cout << "NO" << endl;
  21.     }
  22.     return 0;
  23. }
复制代码


在主函数中,我们首先读取两个整数n和m,并将它们作为参数传递给函数`check`。然后,我们根据`check`函数的返回值来输出结果。

运行代码,输入两个整数,程序会根据输入的值判断结果并输出。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-22 16:04

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表