每日一练

目录

1.1

1065:题目描述  输入一行字符,以回车符作为输入结束的标志。统计其中数字字符的个数。

1.2  答案:

2.1

1066:题目描述  输入一行字符,以回车符作为输入结束的标志。统计其中英文字母、数字字符和其他字符的个数。

2.2  答案:


1.1

1065:题目描述

输入一行字符,以回车符作为输入结束的标志。统计其中数字字符的个数。

输入

多个字符,以回车符结束,回车符不作为有效字符。

输出

输出一个整数,表示数字字符的个数。

1.2

答案:

# include<stdio.h>
int main()
{
    char x;
    int y=0;
    while(1)
    {
        scanf("%c",&x);
        if(x=='\n')
            break;
        if((int)x>=48 && (int)x<=57)
            y++;
    }
    printf("%d",y);
    return 0;
}

2.1

1066:题目描述

输入一行字符,以回车符作为输入结束的标志。统计其中英文字母、数字字符和其他字符的个数。

输入

多个字符,以回车符结束,回车符不作为有效字符。有效字符个数不超过100。

2.2

答案:

#include<stdio.h>
int main()
{
    char x;
    int a=0,b=0,c=0;
    while(1){
        scanf("%c",&x);
        if(x=='\n')
        break;
        if(x>='0' && x<='9')
        a++;
        else if(x>='a' && x<='z' || x>='A' && x<='Z')
        b++;
        else
        c++;
    }
    printf("letter:%d\ndigit:%d\nother:%d",b,a,c);
    return 0;
}

ps:第一题开始审错题啦,把数字当成整体,为一个,字符为一个,算整合,难了我好久,最后朋友提醒才发现emmm

 主要是这个凑巧了QAQ但是,第一个想法还是没解开emm下次一定

pps:第二题和第一题几乎一样,只要区分字母,数字,其他字符就行。区别数字有两种方法(至少)

我们设置读取参数的类型为字符,直接判定就是>='0' && <='9',  还可以(int)>=48 && (int)<=57

因为是字符型,数字是一位一位读取的,(例如:123,%d读取123,%c读取1,读取2,读取3)所以数字一定在0-9,而数字对应的ASCLL为:0对应48;9对应57; 

‘0’和0主要区别是一个用在字符判断该字符是否为0,一个用在数字中,判定是否为0(本人理解)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值