#include<stdio.h> #include<string.h> struct add { char a; int c; }s[1001]; int main() { char s1[1001]; gets(s); for(int i=0;i<strlen(s);i++) { s[i].a=s1[i]; s[i].c=1; } for(int i=0;i<strlen(s);i++) { for(int j=i+1;j<strlen(s);j++) { if(s[i].a==s[j].a) s[i].c++; } } int max=0; for(int i=0;i<strlen(s);i++) { if(s[i].c>max) max=s[i].c; } for(int i=0;i<strlen(s);i++) { if(max==s[i].c) { printf("%c %d\n",s[i].a,s[i].c); break; } } return 0; }改错
时间: 2024-01-19 11:03:10 浏览: 72
#include <stdio.h>
4星 · 用户满意度95%
有几处错误需要进行修改:
1. 第一行 `#include<stdio.h> #include<string.h>` 应该将两个 `#include` 分开写在两行。
2. 第 8 行 `gets(s);` 中的变量名应该是 `s1` 而不是 `s`。
3. 第 10 行 `s[i].a=s1[i];` 中的 `s` 应该是 `s1`。
4. 第 19 行 `for(int i=0;i<strlen(s);i++)` 中应该将 `s` 改为 `s1`。
下面是修改后的代码:
```c
#include<stdio.h>
#include<string.h>
struct add {
char a;
int c;
} s[1001];
int main() {
char s1[1001];
gets(s1);
for(int i = 0; i < strlen(s1); i++) {
s[i].a = s1[i];
s[i].c = 1;
}
for(int i = 0; i < strlen(s1); i++) {
for(int j = i + 1; j < strlen(s1); j++) {
if(s[i].a == s[j].a)
s[i].c++;
}
}
int max = 0;
for(int i = 0; i < strlen(s1); i++) {
if(s[i].c > max)
max = s[i].c;
}
for(int i = 0; i < strlen(s1); i++) {
if(max == s[i].c) {
printf("%c %d\n", s[i].a, s[i].c);
break;
}
}
return 0;
}
```
阅读全文