| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1117 人关注过本帖
标题:六角填数的问题,请教
只看楼主 加入收藏
卜算子
Rank: 1
等 级:新手上路
帖 子:86
专家分:8
注 册:2016-9-18
结帖率:82.35%
收藏
 问题点数:0 回复次数:0 
六角填数的问题,请教
#include<stdio.h>
bool check(int *a, int num)    //用于检验a[num]时候与前面的元素是否有相同的值
{
    for (int i = num - 1; i >= 0; i--)
    {
        if (a[i] == a[num])
            return 0;
    }
    return 1;
}
bool final_check(int *a)    //用于检验是否所有直线上的和相等
{
    int r1 = a[2] + a[3] + a[4] + a[5];
    int r2 = a[8] + a[9] + a[10] + a[11];
    int r3 = a[1] + a[3] + a[6] + a[8];
    int r4 = a[1] + a[4] + a[7] + a[11];
    int r5 = a[5] + a[7] + a[10] + a[12];
    if (r1 == r2&&r2 == r3&&r3 == r4&&r4 == r5)
        return 1;
    else
        return 0;
}
void show(int *a)
{
    int i = 1;
    while (i<13)
        printf("%d", a[i++]);
}
void fun(int *a, int num)
{
    if (num == 12)
    {
        a[num] = 3;
        if (final_check(a))
        {
            show(a);
            printf("%d", a[6]);
        }
    }
    for (int i = 2; i<13; i++)
    {
        a[num] = i;
        if (check(a, num))
        {
            fun(a, num + 1);
        }//就是这里,当num到12的时候这里加了1不就越界了吗。为啥还能正常输出...然后我也没找到他的返回条件.0.0
    }
}
int main()
{
    int a[13] = { 3,1,8 };
    fun(a, 3);
    getchar();
    return 0;
}
搜索更多相关主题的帖子: include return 元素 
2017-03-21 21:12
快速回复:六角填数的问题,请教
数据加载中...
 
   



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

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