S1E13课后作业求助
查一段语句大写字母的作业#include<stdio.h>
int main()
{
int ch,count = 0;
printf("请输入一段英文:");
while(getchar()!= '\n')
{
if(getchar() >= 'A' && getchar() <= 'Z')
{
count = count + 1;
}
}
printf("这段字符中有%d个大写字母",count);
return 0;
}
我看老师标准答案if语句后面是把getchar()赋值给一个新变量之后引用的是新变量,直接用函数不行么???
初学者,有点蒙了{:5_96:} 你这样写,没有问题。只是你有没有算过,你多写了多少个字符? 风过无痕1989 发表于 2021-1-22 14:44
你这样写,没有问题。只是你有没有算过,你多写了多少个字符?
哪里多写?? 南橘喝汽水 发表于 2021-1-22 14:53
哪里多写??
你每一次getchar,都会接受一个字符
所以你必须把第一次getchar的结果存起来,在下面用 南橘喝汽水 发表于 2021-1-22 14:53
哪里多写??
如果用一个变量 ch = getchar(), 那么,后面的都可以用 ch,而你每次都是用 getcahr() 风过无痕1989 发表于 2021-1-22 15:05
如果用一个变量 ch = getchar(), 那么,后面的都可以用 ch,而你每次都是用 getcahr()
懂了!谢谢 qiuyouzhi 发表于 2021-1-22 14:59
你每一次getchar,都会接受一个字符
所以你必须把第一次getchar的结果存起来,在下面用
了解!谢谢 南橘喝汽水 发表于 2021-1-22 15:35
了解!谢谢
如果问题已解决,请设置【最佳答案】 南橘喝汽水 发表于 2021-1-22 14:53
哪里多写??
除此之外,还有两点是最重要的:
1、用一个变量节省运行时间,用一个函数运行的时间可想而知;
2、函数 getchar(),每次读取一个字符,读过的字符,就在键盘缓冲区消失了,下一次再调用 getchar() 读取的是另一个字符。换句话说: if(getchar() >= 'A' && getchar() <= 'Z') 这一条语句就读取了两次缓冲区,也就是说 getchar() >= 'A' 读取的是一个字符,getchar() <= 'Z' 读取的是另一个字符,这一点,你用步进调试方式可能看到
综上所述:你的程序循环一次,读取了三个字符 while 一个,if 这里两个,你的程序还能达到你的要的目的吗? 南橘喝汽水 发表于 2021-1-22 14:53
哪里多写??
不好意思,我说话是不是有点大喘气呀?
这是因为我每天只回答十次帖子,今天,你这个帖子我完成了四个,请详解 风过无痕1989 发表于 2021-1-22 15:41
不好意思,我说话是不是有点大喘气呀?
这是因为我每天只回答十次帖子,今天,你这个帖子我完成了四个, ...
没事没事{:5_95:}
页:
[1]