Online Compiler C

#include <stdio.h> int sum(char a[],char b[]){ int i=0; if(a[i]!=b[i]){ return i; }i++; return -1; } int main() { int a[1001],b[1001],answer=0; char m,n; int i=0,t=0; while((m=getchar())!=EOF){ a[i]=m; i++; } while((n=getchar())!=EOF){ b[t]=n; t++; } answer=sum(a,b); printf("%d",answer); return 0; }
这段代码试图比较两个字符串,但存在多个问题。`sum`函数只比较了第一个字符就返回了结果,而主函数中数组类型和读取方式也有错误。

- `sum`函数中,`if(a[i]!=b[i])`只比较了索引0的字符,然后立即返回。你需要一个循环来逐个比较所有字符,直到找到不同或到达字符串末尾。
- 主函数中,`a`和`b`被声明为`int`数组,但`getchar()`返回的是字符,应该用`char`数组来存储。同时,`sum`函数期望`char`数组参数,但传入的是`int`数组,类型不匹配。