我的这个函数不断失败autograder,我想弄清楚它的逻辑流程是否有问题?有什么想法吗?逻辑流程错误?为数独游戏获取坐标的函数
基本上,如果行错了,应该打印“无效行”,并且clearInput();称为,并返回false。当y错误时,打印出“无效列”,并清除输入();调用并返回false。
当两个都错了,只有“无效行”是要打印(仍然clearInput并返回false。
显然,当行和y是正确的,打印没有错误并返回true。
我功能获得通过大部分的测试案例,但接近年底失败,我有点失去了,为什么
bool getCoords(int & x, int & y)
{
char row;
bool noError=true;
cin>>row>>y;
row=toupper(row);
if(row>='A' && row<='I' && isalpha(row) && y>=1 && y<=9)
{
x=row-'A';
y=y-1;
return true;
}
else if(!(row>='A' && row<='I'))
{
cout<<"Invalid row"<<endl;
noError=false;
clearInput();
return false;
}
else
{
if(noError)
{
cout<<"Invalid column"<<endl;
}
clearInput();
return false;
}
}
你可以简化if条件,但除了你的代码看起来是正确的。哪些测试失败? – pajton 2010-04-05 16:34:40
我不完全确定,我很难理解它..这里有自编器的输出: http://pastebin.com/vVchxvYz 第27行是我的输出不同于他们的输出.. – codefail 2010-04-05 16:39:13