实名吃香菜 2021-11-16 23:09 采纳率: 75%
浏览 115
已结题

最大最小单词简略版(The Biggest and Smallest Words)自己的代码有个地方不懂

为什么最后输出Smallest word时,输出a[1]结果正确,而输出a[0]结果不正确?求解啊!!
最大最小单词简略版(The Biggest and Smallest Words)

编写程序找出一组单词中“最小”单词和“最大”单词。

用户输入单词后,程序根据字典顺序决定排在最前面和最后面的单词。

当用户输入4个字母的单词时,程序停止读入。假设所有单词都不超过20个字母。

输出范例1:




```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

输出范例2:

Enter word: computer
Enter word: ink
Enter word: light
Enter word: bookrack
Enter word: book

Smallest word: book
Largest word: light

#include <stdio.h>
#include<string.h>
#define WIDTH 100
#define LENGTH 20
int main ()
{
    char a[WIDTH][LENGTH+1],str[100]={"\0"};
    int i,j,k,m;
    for(i=0;j!=4;++i)
    {
        printf("Enter word:");
        scanf("%s",&a[i]);
        j=strlen(a[i]);
    }
    for(j=0;j<i;++j)   //冒泡排序法
    {
        for(k=0;k<i-j;++k)
        {
            if(strcmp(a[k],a[k+1])>0)
            {
                strcpy(str,a[k]);
                for(m=0;m<21;++m)
                a[k][m]='\0';
                strcpy(a[k],a[k+1]);
                for(m=0;m<21;++m)
                a[k+1][m]='\0';
                strcpy(a[k+1],str);
            }
        }    
    }
    printf("Smallest word:%s",a[1]);  
    printf("Largest word:%s",a[i]);
    return 0;
}
  • 写回答

1条回答 默认 最新

  • bekote 2021-11-17 09:23
    关注
    
    #include <stdio.h>
    #include<string.h>
    #define WIDTH 100
    #define LENGTH 20
    int main ()
    {
        char a[WIDTH][LENGTH+1],str[100]={"\0"};
        int i,j,k,m;
        for(i=0;j!=4;++i)
        {
            printf("Enter word:");
            scanf("%s",&a[i]);
            j=strlen(a[i]);
        }
        for(j=0;j<i;++j)   //冒泡排序法
        {
            for(k=0;k<i-j-1;++k)
            {
                if(strcmp(a[k],a[k+1])>0)
                {
                    strcpy(str,a[k]);
                    strcpy(a[k],a[k+1]);
                    strcpy(a[k+1],str);
                }
            }    
        }
        printf("Smallest word:%s\n",a[0]);  
        printf("Largest word:%s\n",a[i-1]);
        return 0;
    }
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 11月25日
  • 已采纳回答 11月17日
  • 创建了问题 11月16日

悬赏问题

  • ¥15 2024-五一综合模拟赛
  • ¥15 如何将下列的“无限压缩存储器”设计出来
  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口