1

这是 KN King 书中的一个例子,它在一系列单词中找到最小和最大的单词,并在单词长度为 4 处停止。但它不能正常工作。

#include <stdio.h>
#include <string.h>

#define N 20


int main(void) {
    char smallest_word[N];
    char largest_word[N];
    char current_word[N];
    printf("Enter word: ");
    gets(current_word);
    strcpy(smallest_word, strcpy(largest_word, current_word));
    while(strlen(current_word) != 4){
        printf("Enter word: ");
        gets(current_word);
        if(strcmp(current_word, smallest_word) < 0)
            strcpy(smallest_word, current_word);
        if(strcmp(current_word, largest_word) > 0)
            strcpy(largest_word, current_word);

    } 
    printf("\nSmallest word: %s\n", smallest_word);
    printf("Largest word: %s\n", largest_word);
    return 0;
}

假设我输入:

cat 
dog 
catfish
bear

Output:
Smallest Word: bear
Largest Word: dog

我认为这是错误的。

4

1 回答 1

5

如果我们按字典顺序排列这四个单词,我们得到:

  • 鲶鱼

因此输出看起来是正确的(“bear”是第一个,“dog”是最后一个)。

于 2013-03-11T10:21:26.467 回答