鱼C论坛

 找回密码
 立即注册
查看: 1972|回复: 1

输出不对

[复制链接]
发表于 2023-12-1 18:13:56 | 显示全部楼层 |阅读模式
本帖为密码帖 ,请输入密码 
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-12-1 18:14:20 | 显示全部楼层
您的代码中存在一些错误和不足之处。以下是对代码的具体修改和解释:

1. 在包含正确的头文件之前,应该包含`#include <stdio.h>`以及`#include <string.h>`。

2. 字符型变量`x`和`y`应该声明为字符数组,而不是单个字符。例如,`char x[MAX_SIZE];`

3. 变量`result`应该声明为字符数组,而不是字符。例如,`char result[MAX_SIZE] = "";`

4. 在使用`fgets`函数时,在每行输入后会自动包含换行符(`\n`),需要将其删除。可以使用`strtok`函数将字符串的末尾的换行符去掉。例如,`strtok(x, "\n");`

5. 在字符串比较时,应该使用`strcmp`函数,而不是`==`运算符。例如,`if (strcmp(x, y) == 0)`

6. `strcpy`函数用于复制字符串,但在使用前需要确保目标字符串有足够的空间。在这种情况下,可以使用`strncpy`函数来复制字符串,并指定目标字符串的长度。例如,`strncpy(result, x, MAX_SIZE);`

7. 如果没有找到相同的字符串,`result`仍然为空字符,因此在比较`result`时应该使用`strcmp(result, "") == 0`来检查是否为空。

8. 注意,使用`fgets`函数读取一行字符串后,会自动将换行符也存储在字符串中。您可以使用`strtok`函数将换行符去掉,或者在比较时忽略换行符。

以下是更新后的代码:
#include <stdio.h>#include <string.h>#define MAX_SIZE 100int main() {    char x[MAX_SIZE];    char y[MAX_SIZE];    int n, m, i, j;    char result[MAX_SIZE] = "";        while (scanf("%d%d", &n, &m) != EOF) {        getchar();  // 处理输入缓冲区中的换行符                for (i = 0; i < n; i++) {            fgets(x, MAX_SIZE, stdin);            strtok(x, "\n");  // 去掉末尾的换行符        }                for (i = 0; i < m; i++) {            fgets(y, MAX_SIZE, stdin);            strtok(y, "\n");  // 去掉末尾的换行符        }                for (i = 0; i < n; i++) {            for (j = 0; j < m; j++) {                if (strcmp(x, y) == 0) {                    if (strcmp(result, x) < 0 || strlen(result) == 0) {                        strncpy(result, x, MAX_SIZE);                    }                }            }        }                if (strcmp(result, "") == 0) {            puts("sad!");        } else {            puts(result);        }    }        return 0;}
希望这可以满足您的需求!如果有任何问题,请随时向我提问。

以上回复来自 -- ChatGPT(FishC官方接口),如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-23 08:43

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表