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

#include<stdio.h>#include<stdbool.h>#include<stdlib.h>voidfun(int*a,bool*visit,intx){... #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;} 展开
 我来答
xoaxa
2017-03-22 · TA获得超过8608个赞
知道大有可为答主
回答量:6415
采纳率:72%
帮助的人:3438万
展开全部

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就不能出结果呢?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式