abcdehhhW 2022-06-19 10:39 采纳率: 50%
浏览 83
已结题

为什么我的代码运行输出不对啊?

6-10 英美姓名(*)
分数 10
作者 李祥
单位 湖北经济学院
英美人的姓名比较复杂,一般都由三个名字组成:教名、自取名和姓氏。假设所有名字的长度均不超过30个字符。

请编写函数,根据教名、自取名和姓氏,生成完整的名字。
输入样例1
Lionel
Brockman
Richie
输出样例1
Lionel Brockman Richie
输入样例2
Karen
(空行)
Carpenter
输出样例2
Karen Carpenter
输入样例3
(空行)
(空行)
Foster
输出样例3
Foster
输入样例4
(空行)
(空行)
(空行)
输出样例4
Noname
代码长度限制
16 KB
时间限制
100 ms
内存限制
64 MB

函数原型
void FullName(char *full, const char *first, const char *middle, const char *last);
裁判程序
#include <stdio.h>
#include <string.h>

void FullName(char *full, const char *first, const char *middle, const char *last);

int main()
{
    char full[128], first[128], middle[128], last[128];
    gets(first);
    gets(middle);
    gets(last);
    FullName(full, first, middle, last);
    puts(full);
    return 0;
}
```c
//我的解答
void FullName(char *full, const char *first, const char *middle, const char *last)
{
    int i=0,j=0;
    for(j = 0;j < strlen(first); j++)
    {
        full[i++] == first[j];
    }
    if(i != 0 && middle[0] != '\0')
    {
        full[i++]=' ';
    }
    for(j = 0;j < strlen(middle); j++)
    {
        full[i++] = middle[j];
    }
    if(i!=0 && last[0] != '\0')
    {
        full[i++]=' ';
    }
    for(j = 0;j < strlen(last); j++)
    {
        full[i++] = last[j];
    }
    if(i==0)
        {
        strcpy(full,"Noname");
        full[6]='\0';
        }
    else 
    full[i]='\0';
    }

```

  • 写回答

1条回答 默认 最新

  • 浪客 2022-06-19 11:03
    关注
    
    26行多了个=   full[i++] == first[j];
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 6月30日
  • 已采纳回答 6月22日
  • 创建了问题 6月19日