所以,不幸的是,我在尝试创建的程序中遇到了另一个问题。首先,我对C编程完全陌生,我正在尝试创建一个Word Search。
我有一段C++代码,我想把它变成C:
#include <iostream>
using namespace std;
int main()
{
char puzzle[5][5] = {
'A', 'J', 'I', 'P', 'N',
'Z', 'F', 'Q', 'S', 'N',
'O', 'W', 'N', 'C', 'E',
'G', 'L', 'S', 'X', 'W',
'N', 'G', 'F', 'H', 'V',
};
char word[5] = "SNOW"; // The word we're searching for
int i;
int len; // The length of the word
bool found; // Flag set to true if the word was found
int startCol, startRow;
int endCol, endRow;
int row, col;
found = false;
i = 0;
len = 4;
// Loop through each character in the puzzle
for(row = 0; row < 5; row ++) {
for(col = 0; col < 5; col ++) {
// Does the character match the ith character of the word
// we're looking for?
if(puzzle[row][col] == word[i]) {
if(i == 0) { // Is it the first character of the word?
startCol = col;
startRow = row;
} else if(i == len - 1) { // Is it the last character of the
// word?
endCol = col;
endRow = row;
found = true;
}
i ++;
} else
i = 0;
}
if(found) {
// We found the word
break;
}
}
if(found) {
cout << "The word " << word << " starts at (" << startCol << ", "
<< startRow << ") and ends at (" << endCol << ", " << endRow
<< ")" << endl;
}
return 0;
}
但是,我遇到了一个问题,因为我刚刚注意到C编程不支持布尔值。
我正在使用它,所以用户输入他正在搜索的单词(例如:boy),用户还输入长度(3),然后用户将输入单词的第一个和最后一个字母的坐标。当用户输入以下内容时,我计划从上面的代码中获取坐标,并将它们与用户输入的内容进行比较如果它们与用户的猜测不匹配,并且与用户的猜测不匹配。
我也试过
stdbool.h
库,但是它不起作用,因为找不到库。有没有其他方法代替
stdbool.h
我知道您使用true=1,false=0,但是我不知道如何在下面的代码中解释它。提前谢谢。
最佳答案
你这么说
我也试过stdbool.h库,但是它不起作用,因为找不到库。
因此,我倾向于建议您找到并使用符合C99或c211标准的编译器前者,至少,不应该太难把你的手放在上面。任何一个都会提供标题,使用它可能是你最方便的前进方式。
因为您的代码仍然包含一些C++ - ISM(例如cout
,using
语句,c++风格> cc>),我倾向于相信您正在用C++编译器编译。这是未找到#include
头的一个可能原因。如果你想转换成C语言,那么一定要用C编译器编译你的代码。
关于c - C编程中的 boolean 值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34683326/