注册 登录
编程论坛 C语言论坛

用字符串找出一组单词中最大和最小的单词

小奶呆瓜 发布于 2020-12-31 08:57, 2140 次点击
编写程序用来找到一组单词中“最大”单词和“最小”单词。当用户输入单词后,程序根据字典的排序顺序决定排在最前面和最后面的单词。当用户输入了4个字母的单词时,程序必须停止读入。假设所有单词都不超过20个字母程序会话如下:
Enter Word: dog
Enter Word: zebra
Enter Word: rabbit
Enter Word: catfish
Enter Word: walrus
Enter Word: cat
Enter Word: fish

Smallest Word: cat
Largest Word: zebra
4 回复
#2
rjsp2020-12-31 10:15
当用户输入了4个字母的单词时,程序必须停止读入。
那么这4个字母的单词是不是参与竞争最大最小值?
#3
小奶呆瓜2021-01-02 07:39
不参与竞争
#4
do8do8do82021-01-02 11:14
方法可多了。
我喜欢简单易懂的。
1,建立一个字符数组char  ala[26]={'a',…,'z'};
2,每次读进来的字符组,取第一个换成小写找出在ala的位置
3,把最小小的存在一个小数组,最大大的存在另一个数组
就这样
草率了
不用建ala数组了
这跟比较数字大小写有什么区别
直接比较啊

[此贴子已经被作者于2021-1-2 11:22编辑过]

#5
rjsp2021-01-02 20:53
回复 3楼 小奶呆瓜
程序代码:
#include <stdio.h>
#include <string.h>

int main( void )
{
    char mins[21] = "";
    char maxs[21] = "";
    for( char word[21]; printf("Enter Word: "), scanf("%s",word)==1 && strlen(word)!=4; )
    {
        if( mins[0]=='\0' || strcmp(mins,word)>0 )
            strcpy( mins, word );
        if( strcmp(maxs,word) < 0 )
            strcpy( maxs, word );
    }
    printf( "Smallest Word: %s\n", mins );
    printf( "Largest Word: %s\n", maxs );
}
1