我写的出错了,大概是类型有问题,我不知道哪里错了。
题目是输入n个大写字母ABC(不输入空格),计算输入A,B,C的出现的次数。帮我改一下,谢谢
#include<stdio.h>
#include<string.h>
int main(){
int n,i=0;
int a=0,b=0,c=0;
scanf("%d",&n);
char p[n];
while((p[i]=getchar())!='\n'){
if(strcmp(p[i],'A'))a++;
else if(strcmp(p[i],'B'))b++;
else if(strcmp(p[i],'C'))c++;
i++;
str[i]='\0';
}
printf("%d %d %d",a,b,c);
return 0;
}
str这个我应该是p[i]的,打错了
可是数组定义长度可以是变量啊,现在是可以了啊
追答C标准中数组的长度必须在编译期就确定,所以最好不要这么写,因为这是对C89标准的一个扩展,不是所有编译器都支持,移植性也会很差。想要这样的功能,可以用malloc的方式去动态分配空间,使用起来一样,就是用完了不要忘记free。这样你无论用什么编译器都没问题
本回答被提问者采纳还有点问题,我输入10个人后就结束运行了啊,
追答你要输入人数吗?
#include
int main()
{
char c;
int n,r[3]={0};
scanf("%d",&n);
getchar();
while((c=getchar())!='\n')
r[c-'A']++;
printf("%d %d %d",r[0],r[1],r[2]);
return 0;
}