我的這個函數不斷失敗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