m0_68913277 2022-04-27 15:58 采纳率: 100%
浏览 21
已结题

为什么只能输出四个结果

#include<stdio.h>
#include<string.h>
int main()
{
int h,i,j,m;
char str1[5][10],str2[10];
printf("输入五个单词:\n");
for(h=0;h<5;h++)
gets(str1[h]);
for (j=0;j<5;j++)
for(i=0;i<5-j;i++)
if(strcmp(str1[i],str1[i+1])>0)
{

            strcpy(str2,str1[i+1]);
            strcpy(str1[i+1],str1[i]);
            strcpy(str1[i],str2);
         }
 printf("按字典顺序排列的结果为:\n ");
 for(m=0;m<5;m++)
 puts(str1[m]);
 return 0;
 

}

img

  • 写回答

2条回答 默认 最新

  • xdspower 2022-04-27 16:55
    关注

    你冒泡算法实现部分不对的

    #include<stdio.h>
    #include<string.h>
    int main()
    {
        int h,i,j,m;
        char str1[5][10],str2[10];
        printf("输入五个单词:\n");
        for(h=0;h<5;h++)
            gets(str1[h]);
        for (j=0;j<5-1;j++){
                for(i=0;i<5-j-1;i++){
                    if(strcmp(str1[i],str1[i+1])>0){   
                            strcpy(str2,str1[i+1]);
                            strcpy(str1[i+1],str1[i]);
                            strcpy(str1[i],str2);
                        }
                }            
        }
         printf("按字典顺序排列的结果为:\n");
         for(m=0;m<5;m++)
             puts(str1[m]);
     }
    

    此外你编码习惯还需要调整。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 6月8日
  • 已采纳回答 5月31日
  • 创建了问题 4月27日

悬赏问题

  • ¥20 关于多单片机模块化的一些问题
  • ¥30 seata使用出现报错,其他服务找不到seata
  • ¥35 引用csv数据文件(4列1800行),通过高斯-赛德尔法拟合曲线,在选取(每五十点取1点)数据,求该数据点的曲率中心。
  • ¥20 程序只发送0X01,串口助手显示不正确,配置看了没有问题115200-8-1-no,如何解决?
  • ¥15 Google speech command 数据集获取
  • ¥15 vue3+element-plus页面崩溃
  • ¥15 像这种代码要怎么跑起来?
  • ¥15 安卓C读取/dev/fastpipe屏幕像素数据
  • ¥15 pyqt5tools安装失败
  • ¥15 mmdetection