|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- #include<stdio.h>
- int main()
- {
- printf("请输入英文句子:");
- int count=0,total=0;
- int ch;//此处用int 和char 有什么区别?
- while((getchar())!='\n')
- {
- total +=1;
- ch=getchar();//为什么在这里给ch赋值,统计个数会出错?
- if('A'<=ch&&ch<='Z')
- {
- count +=1;
- }
- }
- printf("一共输入%d个大写字母。\n",count);
- printf("总共输入%d个字符。\n",total);
- return 0;
- }
复制代码
本帖最后由 superbe 于 2019-8-30 11:11 编辑
1.这里用int或char都可以,char实际上储存的就是整数。只不过char占1个字节,而int一般占4个字节。不超过255的ASCII码字符用char就够了。
2.getchar()是依次读一个字符,程序只是在getchar()!='\n'后计数,接下来的一个getchar()被漏掉了,所以计数不正确。
代码可以这样改:
#include<stdio.h>
int main()
{
printf("请输入英文句子:");
int count=0,total=0;
int ch;//此处用int 和char 有什么区别?
while((ch=getchar())!='\n')
{
total +=1;
//ch=getchar();//为什么在这里给ch赋值,统计个数会出错?
if('A'<=ch && ch<='Z')
{
count +=1;
}
}
printf("一共输入%d个大写字母。\n",count);
printf("总共输入%d个字符。\n",total);
return 0;
}
|
|