【问题标题】:A loop that stops for word 4 letter为单词 4 字母停止的循环
【发布时间】:2016-09-01 19:36:22
【问题描述】:

当我输入一个包含 4 个字母的单词时,我想停止循环,但它并没有停止。它出什么问题了? 这是我的代码:

int main()
{
    char word[10][20];
    int i=0;

    while(strlen(word[i])!=4)
    {
        scanf("%s",&word[i]);
        puts(word[i]);
        i++;
    }
}

【问题讨论】:

  • 在您将任何内容读入word[i] 之前,您正在检查word[i]strlen
  • while(i < 10 && 1 == scanf("%19s", word[i]) && strlen(word[i])!=4) puts(word[i++]);

标签: c loops while-loop


【解决方案1】:

while(strlen(word[i]) != 4 替换为while ((i-1 >= -1) && (strlen(word[i-1]) != 4))

您的版本正在检查尚未输入的当前单词。你读了一个单词,增加i 并计算ith 单词的长度,但它还没有到这里,但是你想检查最后输入的单词的长度,所以使用word[i-1]添加一个检查 (!!) 以防止超出范围(例如,while ((i-1 >= -1) && strlen(word[i-1]....)

【讨论】:

    猜你喜欢
    • 2014-07-28
    • 1970-01-01
    • 1970-01-01
    • 2019-07-07
    • 1970-01-01
    • 1970-01-01
    • 2015-09-25
    • 1970-01-01
    • 2015-11-24
    相关资源
    最近更新 更多