fsxbfgvdc 2022-11-11 14:01 采纳率: 50%
浏览 57
已结题

关于二维数组输入问题

先放一下代码
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main()
{
int b,i,d=-1;
char a;
scanf("%d",&b);
char
c[10]={"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"};
a=(char
)malloc((b+2)sizeof(char));
这里用的是二维数组指针(
被省略了)
for(i=0;i<b;i++)
{
scanf("%s\n",a+i);
}
for(i=0;i<b;i++)
{
for(int j=0;j<7;j++)
{d=strcmp(a+i,*(c+j));
if(d==0)
{
printf("%d\n",j+1);
break;
}
if(j==6)
{
printf("-1\n");
}
}
}
printf("%s\n",a+1);
}

用以上代码输入下面数据时倒数第二行输入时不知道为啥还会将最后一行数据一并输入进去
3
Tuesday
Wednesday
year
结果
3
-1
-1
Wednesdayear
此处最后一行输出为二维数组指针存入的第二行数据
但原本应该是存入Wednesday但不知为何还会将下一行的year一并存入
尝试过用gets但结果还是一样

  • 写回答

2条回答 默认 最新

  • 谢玄. 2022-11-11 15:37
    关注

    你要输出什么 , 我就拿我发现的问题吧

    1. 字符串数组 应该是二维数组 而不是 一维数组 。 char c[10][100] ;
    2. malloc 应该转换成指针char*类型,而不是 char 类型
    3. 输入 %s 不应该是 a + i 因为 a 是 char 字符 类型的 , 而不是字符串。

    最重要的是插入代码请使用 Markdown 语法正确插入 用 ``` 两个3个连续的反引号包裹代码!

    #include<stdio.h>
    #include<string.h>
    #include<stdlib.h>
    int main() {
        int b = 0;
        char c[7][10] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
        scanf("%d", &b);
        char input[b][100] = {0};
        fflush(stdin);
        for ( int i = 0 ; i < b ; i++) {
            gets(input[i]);
        }
        for ( int i = 0 ; i < b ; i++ ) {
            for( int j = 0 ; j < 7 ; j++ ) {
                if( strcmp(input[i],c[j]) == 0 ){
                    printf("%d\n",j);
                    break;
                } else if( j+1 == 7 ){
                    printf("-1\n");
                }
            }
        }
    
    
    
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 11月20日
  • 已采纳回答 11月12日
  • 请采纳用户回复 11月12日
  • 修改了问题 11月11日
  • 展开全部

悬赏问题

  • ¥15 关于#python#的问题,请各位专家解答!
  • ¥15 对于这个问题的解释说明
  • ¥200 询问:python实现大地主题正反算的程序设计,有偿
  • ¥15 smptlib使用465端口发送邮件失败
  • ¥200 总是报错,能帮助用python实现程序实现高斯正反算吗?有偿
  • ¥15 对于squad数据集的基于bert模型的微调
  • ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
  • ¥20 steam下载游戏占用内存
  • ¥15 CST保存项目时失败
  • ¥20 java在应用程序里获取不到扬声器设备