从键盘输入10个字符串,将每个字符串的最大字符依次放入一维数组中

strcpy用不了运行的时候老会卡住说参数不兼容,他只有两行,怎么填呀🥺

img

ch[i]=s[i][0]
ch[i]=s[i][j]

这个题或者这种题,你必须对他的处理逻辑有一点的分析:
针对这个题,你必须意识到:
第一:十个字符串,要循环每个字符串处理
第二:每个字符串,如何找到最大字符。 (存储的问题另说)

除此之外,你贴的代码是有乱的 不知道怎么贴的,下次注意,应该有个插入代码,你可以试试,方便别人给你调代码。

int main()
{
    int i, j;
    char s[10][20] = { 0 }, ch[10] = { 0 };
    for (i = 0; i < 10; i++) //这里相当于10个字符串 每个用20个字符存,
     //遍历每个字符串,求每个字符串的最大元素,放在后面数组刚好10个,下标对应放
    {
        gets_s(s[i]); //获取一个字符串 s是二维数组  s[i]表示的是一个字符串的下标
//这是一个求字符串中最大字符的逻辑
        ch[i] = s[i][0]; //结合下面的逻辑,暂存第一个下标元素,和后面所有元素作比较
        for (j = 1; s[i][j] != '\0'; j++) //注意  下标从1开始,那第一个0呢? 肯定在上面用了
        {
            if (ch[i] < s[i][j]) // 和后面所有元素作比较  取最大值
            {
                ch[i] = s[i][j]; //说明s[i][j] 比较大,存到目标位置
            }
        }
    }

    for (i = 0; i < 10; i++)
    {
        printf("%d %c \n", i, ch[i]);
    }
}

img

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632