输入:五个单词 输出 最大和最小单词

定义包含5个英文单词的字符数组(即二维字符数组),键盘输入五个单词,按字典顺序寻找最大和最小单词并输出。

代码如下:

#include <stdio.h>
#include <string.h>
int main()
{
    char str[5][40]={0};
    char tmp[40];
    int i,j;
    for (i=0;i<5;i++)
    {
        gets(str[i]);
    }
    //排序
    for (i=0;i<4;i++)
    {
        for(j=0;j<4-i;j++)
        {
            if(strcmp(str[j],str[j+1]) > 0)
            {
                memset(tmp,0,40);
                memcpy(tmp,str[j],strlen(str[j]));
                memset(str[j],0,40);
                memcpy(str[j],str[j+1],strlen(str[j+1]));
                memset(str[j+1],0,40);
                memcpy(str[j+1],tmp,strlen(tmp));
            }
        }
    }
    //输出
    printf("最大:%s\n",str[4]);
    printf("最小:%s\n",str[0]);
    return 0;
}

你题目的解答代码如下:

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

int main()
{
    char s[5][100],*max,*min;
    int i;
    for (i=0;i<5;i++)
    {
        scanf("%s", s[i]);
    }
    max = min = s[0];
    for (i=1;i<5;i++)
    {
        if(strcmp(max,s[i]) < 0)
            max = s[i];
        if(strcmp(min,s[i]) > 0)
            min = s[i];
    }
    printf("最大单词:%s\n",max);
    printf("最小单词:%s\n",min);
    return 0;
}

img

如有帮助,望采纳!谢谢!

用冒泡排序,strcmp进行字符串大小比较