| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 655 人关注过本帖
标题:九宫格求解,结果为何不能输出?
只看楼主 加入收藏
xunlei2015
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2015-8-15
结帖率:100%
收藏
已结贴  问题点数:4 回复次数:5 
九宫格求解,结果为何不能输出?
#include <stdio.h>
#include <stdlib.h>

int a[9][9],row[9][10],col[9][10],g[10][10],i,j;
void fun(int x,int y)
{
  if(x==9&&y==0)
   {
    for(i=0;i<9;i++)
      {
       for(j=0;j<9;j++)
         {
           printf("%d",a[i][j]);
         }
       puts("");
      }
   }
  if(a[x][y]!=0)
    {
     if(y==8)
       {
        fun(x+1,0);
       }
     else
       fun(x,y+1);
    }
  else
     for(i=1;i<=9;i++)
        {
         if(row[x][i]==1||col[y][i]==1||g[(x)/3*3+(y)/3][i]==1)
         continue;
          a[x][y]=i;
          row[x][i]=1;
          col[y][i]=1;
          g[(x)/3*3+(y)/3][i]=1;
         if(y==8)
          fun(x+1,0);
         else
          fun(x,y+1);
          row[x][i]=0;
          col[y][i]=0;
          g[(x)/3*3+(y)/3][i]=0;
          a[x][y]=0;
         }
 }
int main()
 {

   for(i=0;i<9;i++)
     {
      for(j=0;j<9;j++)
        {
         scanf("%1d",&a[i][j]);
         if(a[i][j]!=0)
           {
            row[i][a[i][j]]=1;
            col[j][a[i][j]]=1;
            g[(i)/3*3+(j)/3][a[i][j]]=1;
           }
        }
     }
   fun(0,0);
   return 0;
 }

为何程序在codeblocks上输出不了结果?
2015-08-15 18:57
诸葛欧阳
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:流年
等 级:贵宾
威 望:82
帖 子:2790
专家分:14619
注 册:2014-10-16
收藏
得分:1 
你的目的和需求是什么?问问题首先要表述清楚问题否则谁也帮不了你

一片落叶掉进了回忆的流年。
2015-08-15 19:41
xunlei2015
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2015-8-15
收藏
得分:0 
回复 2楼 诸葛欧阳
嗯,谢谢
2015-08-15 20:50
xunlei2015
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2015-8-15
收藏
得分:0 
输入数独题目,程序输出数独的唯一解。我们保证所有已知数据的格式都是合法的,并且题目有唯一的解。

格式要求:
输入9行,每行9个数字,0代表未知,其它数字为已知。
输出9行,每行9个数字表示数独的解。

输入:
005300000
800000020
070010500
400005300
010070006
003200080
060500009
004000030
000009700

程序应该输出:
145327698
839654127
672918543
496185372
218473956
753296481
367542819
984761235
521839764

输入:
800000000
003600000
070090200
050007000
000045700
000100030
001000068
008500010
090000400

程序应该输出:
812753649
943682175
675491283
154237896
369845721
287169534
521974368
438526917
796318452

一楼是代码,可是输入数据之后,结果不能显示出来?新手求解。
2015-08-15 20:54
实际应用
Rank: 5Rank: 5
等 级:职业侠客
威 望:2
帖 子:89
专家分:341
注 册:2015-5-30
收藏
得分:3 
没太看懂,
但是,好像少每行每列里的重复性检查
还有,for里给col,row,g,a赋0 ,没必要 吧

收到的鲜花
  • xunlei20152015-08-16 12:35 送鲜花  2朵  
2015-08-15 22:19
露营地
Rank: 2
来 自:湛江
等 级:论坛游民
帖 子:150
专家分:23
注 册:2015-6-27
收藏
得分:0 
好乱啊

不要不要的。。。
2015-08-16 19:32
快速回复:九宫格求解,结果为何不能输出?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019579 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved