C语言问题,求大神解决,谢谢啦,我是小白,最好能够解释下原因

//输入一个字符串,输出每个大写英文字母出现的次数。#include<stdio.h>voidmain(){chara[20],*p;inti=0;gets(a);whi... //输入一个字符串,输出每个大写英文字母出现的次数。
#include<stdio.h>
void main()
{
char a[20],*p;
int i=0;
gets(a);
while(*p)
{
if(*p>='A'&&*p<='Z')
i++;
p++;
}
printf("%d\n",i);
}
不知道哪里错了
展开
 我来答
百度网友83cdc1c
2013-05-07 · TA获得超过5790个赞
知道大有可为答主
回答量:1907
采纳率:100%
帮助的人:833万
展开全部
#include<stdio.h>
void main()
{
char a[20],*p=a; //这里p要初始化指向数组a,否则下面的while循环*p获取到的就不是你输入的字符串内容了
int i=0;
gets(a);
while(*p)
{
if(*p>='A'&&*p<='Z')
i++;
p++;
}
printf("%d\n",i);
}
程序猿3号
2013-05-07 · TA获得超过1811个赞
知道小有建树答主
回答量:1029
采纳率:33%
帮助的人:762万
展开全部
int i=0;
gets(a);
p = a; //少了这个,p没指向a
while(*p)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
被世界LJ
2013-05-07 · TA获得超过438个赞
知道答主
回答量:96
采纳率:0%
帮助的人:70.3万
展开全部
P指针没有指向a数组,P指针是空指针没数,在gets(a)前面加一句 p=a;
#include<stdio.h>
void main()
{
char a[20],*p;
int i=0;
p=a;
gets(a);
while(*p)
{
if(*p>='A'&&*p<='Z')
i++;
p++;
}
printf("%d\n",i);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友b36f72a
2013-05-07 · TA获得超过1417个赞
知道小有建树答主
回答量:744
采纳率:0%
帮助的人:542万
展开全部
p=a;忘记把p指向a数组了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
夜莺水瓶
2013-05-07
知道答主
回答量:19
采纳率:0%
帮助的人:9.8万
展开全部
///////////
p=a;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式