昕子正在敲代码. 2022-03-30 16:54 采纳率: 100%
浏览 23
已结题

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

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

img

img

  • 写回答

3条回答 默认 最新

  • 关注

    (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;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 4月7日
  • 已采纳回答 3月30日
  • 创建了问题 3月30日