C语言题目简单的题目?
我写的出错了,大概是类型有问题,我不知道哪里错了。题目是输入n个大写字母ABC(不输入空格),计算输入A,B,C的出现的次数。帮我改一下,谢谢#include<stdio...
我写的出错了,大概是类型有问题,我不知道哪里错了。
题目是输入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;
} 展开
题目是输入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;
} 展开
7个回答
展开全部
要看区别直接,替换到语句中就明白了:
1,
设有一以下宏定义
#define
WIDTH
80
#define
LENGTH
WIDTH+40
则执行赋值语句
v=LENGTH*20
V=?
替换得:
v=80+40*20
这显示不是你想要结果
2,
设有一以下宏定义
#define
WIDTH
80
#define
LENGTH
(WIDTH+40)
则执行赋值语句
v=LENGTH*20
V=?
替换得:
v=
(80+40)*20
所以一看就明白结果是不一样的。
1,
设有一以下宏定义
#define
WIDTH
80
#define
LENGTH
WIDTH+40
则执行赋值语句
v=LENGTH*20
V=?
替换得:
v=80+40*20
这显示不是你想要结果
2,
设有一以下宏定义
#define
WIDTH
80
#define
LENGTH
(WIDTH+40)
则执行赋值语句
v=LENGTH*20
V=?
替换得:
v=
(80+40)*20
所以一看就明白结果是不一样的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
定义数组,长度必须是个确定的值,char p[n],这样肯定不对
字符比较,,不用strcmp,这个是比较字符串的,只用用if( p[i]== 'A' )这样就可以了
str[i]是个什么?看不出来
字符比较,,不用strcmp,这个是比较字符串的,只用用if( p[i]== 'A' )这样就可以了
str[i]是个什么?看不出来
更多追问追答
追问
str这个我应该是p[i]的,打错了
可是数组定义长度可以是变量啊,现在是可以了啊
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
mian{
int a=b=c=x=0;
char str[100];
gets(str);
for(int i=0;i<=str.length-1;i++){
if(str[i]=='A'){ a++; }
else if(str[i]=='B'){ b++; }
else if(str[i]=='C'){ c++; }
}
printf("%d,%d,%d",a,b,c);
}
int a=b=c=x=0;
char str[100];
gets(str);
for(int i=0;i<=str.length-1;i++){
if(str[i]=='A'){ a++; }
else if(str[i]=='B'){ b++; }
else if(str[i]=='C'){ c++; }
}
printf("%d,%d,%d",a,b,c);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdio.h>
int main()
{
char c;
int r[3]={0};
while((c=getchar())!='\n')
r[c-'A']++;
printf("%d %d %d",r[0],r[1],r[2]);
return 0;
}
int main()
{
char c;
int r[3]={0};
while((c=getchar())!='\n')
r[c-'A']++;
printf("%d %d %d",r[0],r[1],r[2]);
return 0;
}
更多追问追答
追问
还有点问题,我输入10个人后就结束运行了啊,
追答
你要输入人数吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询