为什么这个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);
} 展开
#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);
} 展开
6个回答
展开全部
请输入一个句子:
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);
}
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);
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你这程序是不是求单词数量呀.
代码修改如下:
#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);
}
代码修改如下:
#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);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#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);
}
#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);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
getchar是按一次回车才读入一个字符
肯定无法实现你输入句子的要求
改用fgets或gets或scanf
或者用getche代替getchar,它不要求回车
肯定无法实现你输入句子的要求
改用fgets或gets或scanf
或者用getche代替getchar,它不要求回车
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1)a输入一次就一直判断a, 没有变化呀
2)判断b的取值的时候为什么用=而不是==
3)c你统计的是空格或是单词数量吗?
2)判断b的取值的时候为什么用=而不是==
3)c你统计的是空格或是单词数量吗?
追问
为什么说a没用到?我是利用getchar把我需要的句子先输入到缓冲区中,在用scanf读取缓冲区中的字符
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询