如何更改代码使测试集成功运行,我错在哪里?


#include <stdio.h>

int main() {
    char a[] = "zhangsan", b[] = "zhangsan love C!";
    char c[] = "lisi", d[] = "lisi love C!"  ;
    char e[] = "湖北 张三", f[] = "湖北 张三 love C!";
    char g[] = "湖南 黄飞", h[] = "湖南 黄飞 love C!";

    if (gets(a))
        puts(b);
    if (gets(c))
        puts(d);
    if (gets(e))
        puts(f);
    if (gets(g))
        puts(h);
    return 0;
}
  • img

img


为什么测试集二无法实现?

你用gets(a)读取数据,就把a中的内容给覆盖了啊,你需要定义一个额外的字符数组来接收输入。
你这不管输入什么,都输出 XX love C!啊,你最好把题目发出来看看。

img

参考如下:

#include <stdio.h>
int main() 
{
    int i;
    char buf[2][20]={0};
    for(i=0;i<2;i++)
    {
        gets(buf[i]);
    }
    for(i=0;i<2;i++)
        printf("%s love C!\n",buf[i]);
    return 0;
}

char k[100];
gets(k);
if(strcmp(k,a) == 0)
puts(b);
else if(strcmp(k,c) == 0)
puts(d);
else if(strcmp(k,e) == 0)
puts(f);
else if(strcmp(k,g) == 0)
puts(h);