-cfyjbjonn 2019-01-14 17:56 采纳率: 57.1%
浏览 3668
已采纳

c语言,输入6个字符串,求最大串和最小串

输入6个字符串,输出最大串及最小串,如
输入:
hello,world
c
java
c++
#c
cp
运行结果:
最大串:java
最小串:c

以下是我的代码,请问哪里有错,怎么改

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define N 7
#define M 15

int main()
{
    int i,j,changdu[N];
    char *m[M],min[M],max[M];
    printf("input 6 strings:\n");
    for(i = 0; i < 6; i++)
    {
        scanf("%s",&m[i]);
    }
    strcpy(min[M],m[0]);
    strcpy(max[M],m[0]);
    for(i = 0; i < 5;i++)
    {
        changdu[i] = strlen(m[i]);
        for(j = i+1; j < 6 ; j++)
        {
            changdu[j] = strlen(m[j]);
            if(changdu[i] < changdu[j])
            {
                strcpy(max[M] , m[j]);
                strcpy(min[M] , m[i]);

            }
        }
    }
    printf("max string is %s,min is %s",max[M],min[M]);

}


  • 写回答

5条回答 默认 最新

  • 白色一大坨 2019-01-15 10:08
    关注

    各位人家都给分了,稍微耐心点嘛,代码改了一下你看看,基本按照你思路弄的:

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #define N 7
    #define M 15
    
    int main()
    {
        int i, j, changdu[N];
        char m[N][M], min[M], max[M];
        int maxlen, minlen;
        printf("input 6 strings:\n");
        for (i = 0; i < 6; i++)
        {
            scanf("%s", &m[i]);
        }
        strcpy(min, m[0]);
        strcpy(max, m[0]);
    
        changdu[0] = strlen(m[0]);
        maxlen = changdu[0];
        minlen = changdu[0];
        for (j = 1; j < 6; j++)
        {
            changdu[j] = strlen(m[j]);
            if (maxlen < changdu[j])
            {
                strcpy(max, m[j]);
                maxlen = changdu[j];
            }
            else if (minlen > changdu[j])
            {
                strcpy(min, m[j]);
                minlen = changdu[j];
            }
        }
    
        printf("max string is %s,min is %s", max, min);
    
    }
    

    执行结果,最长的可不是java是第一行的:
    图片说明

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

报告相同问题?

悬赏问题

  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料