#include<stdio.h> int main() { int i,j,m,n; int a=0,b=0,c=0; char ss[1000][1000]; scanf("%d %d",&m,&n); for(i=0;i<m;i++) scanf("%s",ss); for(i=0;i<m;i++) for(j=0;j<n;j++) { if(ss[i][j]=='R') a++; if(ss[i][j]=='G') b++; if(ss[i][j]=='B') c++; } printf("%d %d %d",a,b,c); return 0; }哪里错了
时间: 2023-12-08 20:05:43 浏览: 249
c语言水仙花练习#include<stdio.h>
5星 · 资源好评率100%
你的代码有两个问题:
1. 在读入队员信息时,应该使用 `scanf("%s", ss[i])` 而不是 `scanf("%s", ss)`,因为 `ss` 是一个二维数组,需要指定具体的行数和列数。
2. 在统计队员数时,应该使用 `if ... else if ... else if ...` 的嵌套结构,而不是使用多个 `if` 语句。因为一个队员只可能属于三个队伍中的一个,如果使用多个 `if` 语句会导致重复计数。
下面是修改后的代码:
```c
#include<stdio.h>
int main() {
int i,j,m,n;
int a=0,b=0,c=0;
char ss[1000][1000];
scanf("%d %d",&m,&n);
for(i=0;i<m;i++)
scanf("%s",ss[i]);
for(i=0;i<m;i++)
for(j=0;j<n;j++)
{
if(ss[i][j]=='R')
a++;
else if(ss[i][j]=='G')
b++;
else if(ss[i][j]=='B')
c++;
}
printf("%d %d %d",a,b,c);
return 0;
}
```
阅读全文