为什么这个c语言程序总是运行是错误?

#include"stdio.h"#include<stdlib.h>intmain(){chara,b;intc=1;puts("请输入一个句子:");a=getcha... #include "stdio.h"
#include <stdlib.h>
int main()
{
char a,b;
int c=1;
puts("请输入一个句子:");
a=getchar();
while(a!='\r')
{
scanf("%c",b);
if (b='\r')
break;
else if (b=' ')
c=c+1;
}
printf("字数为:%d\n",c);
}
展开
 我来答
MatrixRevo
2012-07-10
知道答主
回答量:1
采纳率:0%
帮助的人:2.7万
展开全部
楼主你是想通过一个循环变量来始终处于输入状态吧
然后输出总的字数,你看下面的程序行不行
#include "stdio.h"
#include <stdlib.h>
void main()
{
char a;
int c=0;
puts("请输入一个句子:");
while((a=getchar())!='\n')
c=c+1;
printf("字数为:%d\n",c);
}
追问
回车。。。
沧海雄风2009
2012-07-10 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8525
采纳率:79%
帮助的人:2855万
展开全部
请输入一个句子:
you are pig
字数为:3
Press any key to continue

错误很多 我一一道来

#include "stdio.h"
#include <stdlib.h>
int main()
{
char a,b;
int c=1;
puts("请输入一个句子:");
a=getchar();
while(a!='\n') //错误1 C语言换行是\n
{
scanf("%c",&b); //错误2 scanf接收单字符需要加上地址符
if (b=='\n') //错误3 比较是== =是赋值 //错误4 见错误1
break;
else if (b==' ') //错误5 见错误3
c=c+1;
}
printf("字数为:%d\n",c);
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kingfeng588
2012-07-10 · TA获得超过2494个赞
知道大有可为答主
回答量:1475
采纳率:50%
帮助的人:1812万
展开全部
你这程序是不是求单词数量呀.
代码修改如下:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void main()
{
char a[200];
int c=1,i;
puts("请输入一个句子:");
gets(a);
for(i=0;i<strlen(a);i++)
{
if ((a[i] == ' ') || (a[i] == ',') || (a[i] == '.'))
{
c=c+1;
}
}
printf("字数为:%d\n",c);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
月之十三
2012-07-10 · TA获得超过236个赞
知道小有建树答主
回答量:137
采纳率:0%
帮助的人:167万
展开全部
#include "stdio.h"
#include <stdlib.h>
int main()
{
char a,b;
int c=1;
puts("请输入一个句子:");
a=getchar();
while(a!='\n')////// '\r' 不知道 改成 \n 了

{
scanf("%c",&b);///// scanf语句
if ('\n' == b)//// 赋值号跟等号 这样就会容易区分了
break;
else if (b=' ')
c=c+1;
}
printf("字数为:%d\n",c);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
rm_2013
2012-07-10 · TA获得超过459个赞
知道小有建树答主
回答量:281
采纳率:100%
帮助的人:166万
展开全部
getchar是按一次回车才读入一个字符
肯定无法实现你输入句子的要求

改用fgets或gets或scanf

或者用getche代替getchar,它不要求回车
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
文库地摊
2012-07-10 · TA获得超过1196个赞
知道小有建树答主
回答量:663
采纳率:100%
帮助的人:407万
展开全部
1)a输入一次就一直判断a, 没有变化呀
2)判断b的取值的时候为什么用=而不是==
3)c你统计的是空格或是单词数量吗?
追问
为什么说a没用到?我是利用getchar把我需要的句子先输入到缓冲区中,在用scanf读取缓冲区中的字符
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式