VS 2015中c语言编译问题。如图,gcc编译器正常编译运算通过,但VS不能出结果...怎么回事哦...好方啊

#include <stdio.h>#include <stdbool.h>#include <stdlib.h>void fun(int* a, bool* visit, int x){ if (12 == x) { int temp = a[0] + a[2] + a[5] + a[7]; if (1 == a[0] && 8 == a[1] && 3 == a[11] && temp == a[0] + a[3] + a[6] + a[10] && temp == a[1] + a[2] + a[3] + a[4] && temp == a[1] + a[5] + a[8] + a[11] && temp == a[7] + a[8] + a[9] + a[10] && temp == a[11] + a[9] + a[6] + a[4]) printf("%d\n", a[5]); return; } for (int i = 1; i <= 12; i++) { if (visit[i]) continue; visit[i] = true; a[x] = i; fun(a, visit, x + 1); visit[i] = false; }}int main(){ int* a = calloc(12, sizeof(int)); bool* visit = calloc(12, sizeof(bool)); fun(a, visit, 0); return 0;}

VC ++6.0通过

#include <stdio.h>
#include <iostream.h>
#include <stdlib.h>
void fun(int *a, bool *visit, int x) {
if (12 == x) {
int temp = a[0] + a[2] + a[5] + a[7];//四个随机值得和是无法预测的,
if (1 == a[0] && 8 == a[1] && 3 == a[11] && temp == a[0] + a[3] + a[6] + a[10] && temp == a[1] + a[2] + a[3] + a[4] && temp == a[1] + a[5] + a[8] + a[11] && temp == a[7] + a[8] + a[9] + a[10] && temp == a[11] + a[9] + a[6] + a[4])
printf("%d\n", a[5]);
return;
}
for (int i = 0; i < 12; i++) { //边界改为0、11
if (visit[i]) continue;
visit[i] = true;
a[x] = i;
fun(a, visit, x + 1);
visit[i] = false;
}
}

int main() {
int *a = (int *)calloc(12, sizeof(int));//获得了存储空间,但没有初始化
bool *visit = (bool *)calloc(12, sizeof(bool));
fun(a, visit, 0);
return 0;
}

追问

嗯,谢谢!
但是我不知道为什么VS 2015就不能出结果呢?

温馨提示:内容为网友见解,仅供参考
无其他回答

使用visual studio 2015编译“科勒雪花”这个C语言程序时,一直提示...
VS对C99支持的不是很好,这里是不支持变长数组,可以用GCC 编译器试试,用VS写C程序可烦人了

c语言给了头文件printf没有定义不能识别怎么解决求大
首先,在Linux环境中使用GCC编译C代码时,如果出现函数未定义的错误,可以尝试以下步骤解决:1. 检查头文件路径:确保包含的头文件路径正确无误。在代码中使用`#include`命令引入头文件。例如,`#include `用于引入标准输入输出函数库。2. 检查依赖库:函数未定义的错误可能源于缺失的依赖库。在GCC编译命令...

在vscode中使用Tiny C Compiler(tcc)作为C语言编译器,干货。
在VSCode中,修改配置文件以适应个人需要。在c_cpp_properties.json、launch.json、tasks.json和settings.json文件中进行必要的设置。在settings.json中,针对"code-runner.executorMap"添加针对C和C++的执行器映射,确保能够正常编译。通过上述步骤配置后,尝试运行程序,发现之前的错误提示不再出现。然而,运行...

关于在windows下用cmd编译C语言的问题
在安装VS的时候会提示你自动加入环境变量,默认应该是没打勾的,你要自己选上。gcc是linux环境的编译器吧。你重新搜寻下vs安装的环境变量,然后编译

怎么在VS2008里编写C语言程序
之所以 多了_t 是因为默认使用了unicode宽字符集, 不像以前那样默认是asc字符集, unicode字符集好处非常明显,在不同语言的系统下不会乱码 ,如今写程序也是极力推荐使用unicode的,同时ascII与unicode处理字符窜时所用的函数都不同,多看教程吧,编译设置中有 字符集的设置,想改可以改回来 至于新版...

C语言源程序到运行程序经过哪几个步骤
GCC预处理阶段可以生成.i的文件,通过选项-E可以使编译器在预处理结束时就停止编译。例如:gcc -E -o hello.i hello.c 2、编译 这一阶段,编译器对源码进行词法分析、语法分析、优化等操作,最后生成汇编代码。这是整个过程中最重要的一步,因此也常把整个过程称为编译。可以通过选项-S使GCC在进行...

c语言位运算问题?
如果右操作数大于32它会进行64%32=0,所以i>>64相当于i>>0,如果是i>>63,63%32=31相当于i>>31。这种调整不同的编译器可能会不同,目前GCC是这样的。所以这个代码在GCC环境下输出结果为:0 2 补充说明:如果想要了解更多可以写出代码,然后观察编译出来的汇编代码。gcc -S test.c 图一 ...

c语言编译器
C语言编译器对于开发者而言非常重要,因为它确保了C语言代码能够在特定的计算机硬件上运行。编译过程确保了代码的正确性和安全性,并且能够优化代码的运行效率。此外,编译器还能在代码编译时检查语法错误,并提供错误提示,帮助开发者定位和修复问题。市面上有许多知名的C语言编译器,如GCC、Clang、Microsoft ...

在学习c语言的时候,用VC++6好还是 VS好,求说下区别
如果用C语言的话,最好使用GCC或者Clange这样的编译器,这些对C语言的支持还算好! 微软现在的精力主要放在了C++上面,它的VC++编译器对C语言的支持不是很完善。用VC++6.0好还是VS好?你如果将来打算搞编程,你最好用VS,因为你已经不可能在用VC++6.0 开发Windows 8、10的应用。其次,VS的界面...

C语言文件的编译与执行的四个阶段并分别描述
只要该体系结构处理器有相应的C语言编译器和库,那么C源代码就可以编译并连接到目标二进制文件上运行。1、预处理:导入源程序并保存(C文件)。2、编译:将源程序转换为目标文件(Obj文件)。3、链接:将目标文件生成为可执行文件(EXE文件)。4、运行:执行,获取运行结果的EXE文件。

相似回答