可爱宝宝Myself 2024-10-07 11:17 采纳率: 100%
浏览 46
已结题

E0146初始值设定向太多 问题


#include<stdio.h>
#include<string.h>
main()
{
    int N, d;
    char b[20], a[4] = { "bowl","knife","fork","chopsticks" };//这里为什么显示初始值设定向太多?为什么得改成a[4][20]呢?
    while (scanf("%d", &N) != EOF)
    {
        d = 0;
        while (N--)
        {
            scanf("%s", b);
            for (int i = 0; i < 4; i++)
                if (strcmp(b, a[i]) == 0)
                {
                    d++;
                    if (d == 1) { printf("%s", b); }
                    else { printf(" %s", b); }
                }
        }
        printf("\n");
    }
}
  • 写回答

2条回答 默认 最新

  • micthis 2024-10-07 13:52
    关注

    因为你的a是字符数组只能保存一个长度不大于3的字符串,而你却给了4个字符串,应该将a定义成二维数组(如同你修改的)或定义成字符指针数组:char *a[4]=...;

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

报告相同问题?

问题事件

  • 系统已结题 10月22日
  • 已采纳回答 10月14日
  • 创建了问题 10月7日