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