鱼C论坛

 找回密码
 立即注册
查看: 1208|回复: 2

[已解决]求鱼油友指教,不懂这个count 和 ch是怎么联系起来的。。

[复制链接]
发表于 2020-9-28 17:19:38 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x

不懂这个整型变量count 和 ch 之间有什么联系,不知道这个操作为什么会将大写字母筛选出来

==================源代码如下=============
#include<stdio.h>


int main()


{
    int ch, count = 0;//count只是定义一个整型变量,并初始化为0;
   
    printf("请输入一行英文句子:");
   
    while ( (ch = getchar() ) != '\n')
    {
        if (ch >= 'A' && ch <= 'Z')//这里看不太懂
        {
                count = count + 1;    //这里也看不太懂
        }
        
        
    }
   
    printf("你总共输入了%d个大写字母!\n", count);
   
    return 0;
}




最佳答案
2020-9-29 01:13:26
本帖最后由 风过无痕1989 于 2020-9-29 01:27 编辑

这个程序是统计你输入了多少个大写字母 (你发的没有行号,看着不方便,那就看我复制下来的你的程序吧)

14行,我换个方向,你应该能看明白了,它就像我们所见的  2 <= ch <= 8 是一样的,只是在C语言程序中,不允许连着写,必须要分成两个表达式,中间用 “和 ”来连接,“和” 这个连接用两个 & 来表示;计数器,在程序里我已经用注释说明了,就不多说了。

count 与 ch 没有直接的关系,ch 是用来接收从键盘输入的字母的(无论大小写都接收),有了它,然后就到程序的第14行去比较,如果接收到的字母是介于大写字母 A 与大写字母 Z 之间的( 具体的判断参看字符表的 ASCII 码,大写字母 A 的 ASCII 码是 65,大写字母 Z 的 ASCII 码是 90 ),所以,第14 行又可以改写成:if (65 <= ch && ch <= 90)。
#include<stdio.h>


int main()


{
    int ch, count = 0;                       // 定义一个用来充作计数器的整型变量 count,并初始化为0;
   
    printf("请输入一行英文句子:");
   
    while ( (ch = getchar() ) != '\n')
    {
        if ('A' <= ch && ch <= 'Z')     // 我将 ch >= 'A' 换成 'A' <= ch 这样,就比较符合我们平常的习惯了
        {
                count = count + 1;      // 这里就是对大写字母进行统计,符合上一条的条件就说明有一个大写字母,计数器就加1
        }
        
        
    }
   
    printf("你总共输入了%d个大写字母!\n", count);
   
    return 0;
}

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-9-28 23:58:34 | 显示全部楼层

回帖奖励 +2 鱼币

我爱鱼C
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-29 01:13:26 | 显示全部楼层    本楼为最佳答案   
本帖最后由 风过无痕1989 于 2020-9-29 01:27 编辑

这个程序是统计你输入了多少个大写字母 (你发的没有行号,看着不方便,那就看我复制下来的你的程序吧)

14行,我换个方向,你应该能看明白了,它就像我们所见的  2 <= ch <= 8 是一样的,只是在C语言程序中,不允许连着写,必须要分成两个表达式,中间用 “和 ”来连接,“和” 这个连接用两个 & 来表示;计数器,在程序里我已经用注释说明了,就不多说了。

count 与 ch 没有直接的关系,ch 是用来接收从键盘输入的字母的(无论大小写都接收),有了它,然后就到程序的第14行去比较,如果接收到的字母是介于大写字母 A 与大写字母 Z 之间的( 具体的判断参看字符表的 ASCII 码,大写字母 A 的 ASCII 码是 65,大写字母 Z 的 ASCII 码是 90 ),所以,第14 行又可以改写成:if (65 <= ch && ch <= 90)。
#include<stdio.h>


int main()


{
    int ch, count = 0;                       // 定义一个用来充作计数器的整型变量 count,并初始化为0;
   
    printf("请输入一行英文句子:");
   
    while ( (ch = getchar() ) != '\n')
    {
        if ('A' <= ch && ch <= 'Z')     // 我将 ch >= 'A' 换成 'A' <= ch 这样,就比较符合我们平常的习惯了
        {
                count = count + 1;      // 这里就是对大写字母进行统计,符合上一条的条件就说明有一个大写字母,计数器就加1
        }
        
        
    }
   
    printf("你总共输入了%d个大写字母!\n", count);
   
    return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-6-12 04:37

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表