提问人:Someone Someone 提问时间:11/7/2023 最后编辑:Someone Someone 更新时间:11/7/2023 访问量:77
如果我想有几个不同的 if 语句,所有这些语句的优先级都相同,并且有一个 else 语句来打破循环,我该怎么办?
What should I do if I want to have several different if statements, all of which of equal priority and an else statement to break a loop?
问:
我正在写一段代码,应该在二维数组中找到某些单词或其他字母组合,其中每行的长度相等,所述单词只能水平或垂直排列,不能对角线排列。由于要搜索的单词的第二个字母可以出现在要搜索的单词的第一个字母旁边,因此我需要做出几个类似if的语句,这些语句被逐一检查,问题是,所有包含在一个循环中,如果所有循环都是假的,则需要中断。除非有另一种更简单的方法,而且很可能是,但我精神太疲惫了,想不出办法。 这是我写的代码的一部分。我不得不把整个东西报废一次,因为我是倒着做的,如果一个字母在二维数组中出现不止一次,它就无法正常工作
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <stdlib.h>
#define WORDNUM 100
int main() {
char c, word[WORDNUM][100], matrix[10][11];
int i=0, j=0, lineNum=0, lineLen, a, logLength[WORDNUM], mLine, mLet, wLet, wLine,logExist[WORDNUM]={0}, x, y;
while (a=1){ //this loop get the words that will be searched for
c=fgetc(stdin);
if (isalpha(c)){
word[i][j]=c;
j++;
}
else if(c==' '){
logLength[i]=j;
i++;
j=0;
}
else if(c=='\n'){
logLength[i]=j;
i++;
j=0;
break;
}
}
while(fgets(matrix[lineNum], 11, stdin)!=NULL && lineNum < 10){ // this part gets the two-dimensional array
lineNum++;
}
lineLen=strlen(matrix[0])-1;
for(mLine=0; mLine<lineNum; mLine++){
for(mLet=0; mLet<lineLen; mLet++){
wLine=0;
while(wLine<i){
if(matrix[mLine][mLet]==word[wLine][0]){
wLet=1; x=mLet; y=mLine;
while(wLet<logLength[mLine]){
//here's the checking of rest of the word and breaking the loop if need be
}
}
else wLine++;
}
}
}
return 0;
}
提前感谢您的任何和所有建议;
答: 暂无答案
评论
strncmp()
main