运行后弹出标题为find source的对话框,让我找output.c怎么了解决
#include<stdio.h>
#include<stdlib.h>
char situation[4][200],oldplan[200],plan[5]={1<<4,1,2<<4,2,1<<4|1};
unsigned short times=1;void Solution(char b)
{
unsigned short oldtimes=times-1;
situation[0][times]=situation[0][oldtimes]-b*((plan[oldplan[times]]&0xF0)>>4);
situation[1][times]=situation[1][oldtimes]-b*(plan[oldplan[times]]&0xF);
situation[2][times]=situation[2][oldtimes]+b*((plan[oldplan[times]]&0xF0)>>4);
situation[3][times]=situation[3][oldtimes]+b*(plan[oldplan[times]]&0xF);
}
bool Repeat(char b)
{
for(unsigned short i=0;i<times;i++)
{
if(situation[0][times]==situation[0][i]&&
situation[1][times]==situation[1][i]&&
situation[2][times]==situation[2][i]&&
situation[3][times]==situation[3][i]&&
((times&1)?1:-1)==b)
return true;
return false;
}
}
void main()
{
char b=1;
situation[0][0]=situation[1][0]=3;
situation[2][0]=situation[3][0]=oldplan[0]=0;do
{
Solution(b);
if ((situation[0][times]<situation[1][times]&&situation[0][times])||
(situation[2][times]<situation[3][times]&&situation[2][times])||
situation[0][times]<0||situation[1][times]<0||
situation[2][times]<0||situation[3][times]<0||
Repeat(b)==true)
{
p:
oldplan[times]++;
if (oldplan[times]>4)
{
times--;
b=-b;
oldplan[times]=0;
if (!times)
break;
goto p;
} continue;}
oldplan[times]=0;
b=-b;
times++;
}
while (!(situation[0][times- 1]==0 && situation[1][times- 1]==0 &&
situation[2][times- 1]==3 && situation[3][times- 1]==3));
for(unsigned short i=0;i<times;i++)
printf("%n %n\t %n %n\n",
situation[0][times],
situation[1][times],
situation[2][times],
situation[3][times]);
system("pause");
}
#include<stdio.h>
#include<stdlib.h>
char situation[4][200],oldplan[200],plan[5]={1<<4,1,2<<4,2,1<<4|1};
unsigned short times=1;void Solution(char b)
{
unsigned short oldtimes=times-1;
situation[0][times]=situation[0][oldtimes]-b*((plan[oldplan[times]]&0xF0)>>4);
situation[1][times]=situation[1][oldtimes]-b*(plan[oldplan[times]]&0xF);
situation[2][times]=situation[2][oldtimes]+b*((plan[oldplan[times]]&0xF0)>>4);
situation[3][times]=situation[3][oldtimes]+b*(plan[oldplan[times]]&0xF);
}
bool Repeat(char b)
{
for(unsigned short i=0;i<times;i++)
{
if(situation[0][times]==situation[0][i]&&
situation[1][times]==situation[1][i]&&
situation[2][times]==situation[2][i]&&
situation[3][times]==situation[3][i]&&
((times&1)?1:-1)==b)
return true;
return false;
}
}
void main()
{
char b=1;
situation[0][0]=situation[1][0]=3;
situation[2][0]=situation[3][0]=oldplan[0]=0;do
{
Solution(b);
if ((situation[0][times]<situation[1][times]&&situation[0][times])||
(situation[2][times]<situation[3][times]&&situation[2][times])||
situation[0][times]<0||situation[1][times]<0||
situation[2][times]<0||situation[3][times]<0||
Repeat(b)==true)
{
p:
oldplan[times]++;
if (oldplan[times]>4)
{
times--;
b=-b;
oldplan[times]=0;
if (!times)
break;
goto p;
} continue;}
oldplan[times]=0;
b=-b;
times++;
}
while (!(situation[0][times- 1]==0 && situation[1][times- 1]==0 &&
situation[2][times- 1]==3 && situation[3][times- 1]==3));
for(unsigned short i=0;i<times;i++)
printf("%n %n\t %n %n\n",
situation[0][times],
situation[1][times],
situation[2][times],
situation[3][times]);
system("pause");
}
{
Solution(b);
if ((situation[0][times] <situation[1][times]&&situation[0][times])||
(situation[2][times] <situation[3][times]&&situation[2][times])||
situation[0][times] <0||situation[1][times] <0||
situation[2][times] <0||situation[3][times] <0||
Repeat(b)==true)
{
p:
oldplan[times]++;
if (oldplan[times]>4)
{
times--;
b=-b;
oldplan[times]=0;
if (!times)
break;
goto p;
}
continue; 这里根本过不去~懶得调试看数值了
2、如果是,那就是你的VC工程设置有问题,让你选择一下output.c所在路径就可以了。
3、如果不是,那可能就是你的工程使用了一些.lib库文件,并且关联一个叫output.c文件,
刚才你又没有这个output.c文件,那就点取消好了,VC会用汇编语言方式继续调试,
除了看不太明白汇编语言的真正含义,其它的没有影响。
printf("%n %n\t %n %n\n",
situation[0][times],
situation[1][times],
situation[2][times],
situation[3][times]); 这里是有问题的,situation[a][b]是char型的,而%n要求后面的参数是int*,参数不匹配当然错了
需要改成
printf("%u %u\t %u %u\n",
(int) situation[0][times],
(int) situation[1][times],
(int) situation[2][times],
(int) situation[3][times]); 注意:类型转换和格式化控制符都是必须的