m0_73565969 2023-03-16 16:00 采纳率: 53.8%
浏览 60
已结题

为什么VS2022调试结果和执行结果不一样


#include<cstdio>
#include<cmath>

const int maxn = 11;
int count = 0;
int n, P[maxn], hashTable[maxn] = { false };

void generateP(int index)
{
    if (index == n + 1)
    {
        for (int i = 1; i <= n; i++)
        {
            printf("%d", P[i]);
        }
        printf("\n");
        count++;
    }

    for (int x = 1; x <= n; x++)
    {
        if (hashTable[x] == false)
        {
            bool flag = true;
            for (int pre = 1; pre < index; pre++)
            {
                if (abs(index - pre) == abs(x - P[pre]))
                {
                    flag = false;
                    break;
                }
            }
            if(flag)
            {
                P[index] = x;
                hashTable[x] = true;
                generateP(index + 1);
                hashTable[x] = false;
            }

        }
    }

}

int main()
{
    n = 8;
    generateP(1);
    printf("%d", count);
}

这是我写的一个8皇后代码

img


这是直接执行的结果,count的结果正确,但是中间的情况会缺,而且每次执行缺的都不一样

img


这是调试的结果,没有设断点,count结果也正确,中间也不缺情况

这是为什么

  • 写回答

3条回答 默认 最新

  • threenewbee 2023-03-16 17:25
    关注

    hashTable[maxn] = { false }
    这种写法并不会把所有元素都设置为false,而是只有第一个

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 7月7日
  • 创建了问题 3月16日

悬赏问题

  • ¥15 问题遇到的现象和发生背景 360导航页面千次ip是20元,但是我们是刷量的 超过100ip就不算量了,假量超过100就不算了 这是什么逻辑呢 有没有人能懂的 1000元红包感谢费
  • ¥30 计算机硬件实验报告寻代
  • ¥15 51单片机写代码,要求是图片上的要求,请大家积极参与,设计一个时钟,时间从12:00开始计时,液晶屏第一行显示time,第二行显示时间
  • ¥15 用C语言判断命题逻辑关系
  • ¥15 原子操作+O3编译,程序挂住
  • ¥15 使用STM32F103C6微控制器设计两个从0到F计数的一位数计数器(数字),同时,有一个控制按钮,可以选择哪个计数器工作:需要两个七段显示器和一个按钮。
  • ¥15 在yolo1到yolo11网络模型中,具体有哪些模型可以用作图像分类?
  • ¥15 AD9910输出波形向上偏移,波谷不为0V
  • ¥15 淘宝自动下单XPath自动点击插件无法点击特定<span>元素,如何解决?
  • ¥15 曙光1620-g30服务器安装硬盘后 看不到硬盘