问问各位宝子,这怎么错了哇。

找最长字符串:输入n个字符串 输出其中最长的字符串 调用函数scanf()输入字符串 试编写相应程序。

img

img

(1)每次都赋值到b,会把之前的给覆盖掉
(2)for循环中读取的字符串个数只有n-1个。
修改方法:
在for循环前加一句:
scanf("%s",b);
然后把第13行删掉
代码修改如下:

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

int main()
{
    int n, i;
    char array[100], b[100];
    printf("Enter n:");
    scanf("%d", &n);
    printf("Enter %d strings:", n);
    scanf("%s", b); //修改1 添加这一句
    for (i = 1; i < n; i++)
    {
        scanf("%s", array);
        //strcpy(b, array);  //修改2  注释掉这一句
        if (strlen(b) < strlen(array))
            strcpy(b, array);
    }
    printf("%s", b);
    return 0;
}

不用复制啊,记下长度比较就行

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