#C语言——刷题攻略:牛客编程入门训练(七):分支控制(一)-- 涉及 %c前加空格:忽略起首的空白字符

发布于:2025-08-12 ⋅ 阅读:(20) ⋅ 点赞:(0)

🌟菜鸟主页:@晨非辰的主页

👀学习专栏:《C语言刷题合集》

💪学习阶段:C语言方向初学者

名言欣赏:"代码行数决定你的下限,算法思维决定你的上限。"


目录

1. kiki算数

2. 及格分数

3. 判断整数奇偶性

4. BC53 判断是元音还是辅音(特殊--%c前加空格:忽略起首的空白字符)

5. 牛牛的判断题

6. 判断字母

7. BC57 四季


前言:在学习编程语言的同时,千万别忘了刷刷题来巩固一下学到的知识,对于牛客网_编程入门系列,小子会持续更新分享刷题过程,其中包括一些基础板块的题目,本次将呈现的分支控制章节还有一道剩余的运算章节,共7道题。题目较简单,大家开开胃~~

~~注意部分标题括号内代表对题目涉及到的知识进行说明!

1. kiki算数

题目链接:牛客网_BC49 kiki算数_简单

int main()
{
    int a, b = 0;
    scanf("%d %d", &a, &b);
    int sum = a + b;
    if (sum > 100)
    {
        int count = 2;//记录循环次数
        int last_num = 0;
        int new_num = 0;
        //初始个位数位置
        int position = 1;
        //循环取得数值后两位
        while (count)
        {
            last_num = sum % 10;//末位数值
            new_num += (last_num * position);//进行数值重组
            position *= 10;
            sum /= 10;
            count--;//循环两次
        }
        printf("%d\n", new_num);
    }
    else
        printf("%d\n", sum);
    return 0;
}

解题思路——

--本题答题思路与上一篇刷题博客的第4题类似,只需要解决获得后两位数再乘以相应位数即可。

--博客跳转链接:小乐乐改数字


--下面开始进行分支控制的题目,题目比较基础

2. 及格分数

题目链接牛客网_BC51 及格分数_简单

int main() 
{
    int score = 0;
    while(scanf("%d", &score) == 1)
    {
         if(score >= 60)
        printf("Pass\n");
    else
     printf("Fail\n");
    }
    return 0;
}

解题思路——

--本题将分数分为两种情况:分数在60及以上成绩合格,以下成绩不合格,使用分支语句,思路简单,小子嘴遁~~


3. 判断整数奇偶性

题目链接:牛客网_BC52 判断整数奇偶性_入门

int main() 
{
    int a;
    while(scanf("%d", &a) == 1)
    {
        if(a % 2 ==  0)
        printf("Even\n");
        else
         printf("Odd\n");
    }
    return 0;
}

解题思路——

--本题将分数分为两种情况:数值 % 2,等于0为偶数,不等于0为奇数,思路简单,小子嘴遁~~


4. BC53 判断是元音还是辅音(特殊--%c前加空格:忽略起首的空白字符)

题目链接:牛客网_BC53 判断是元音还是辅音-简单

#include <string.h>
int main() 
{
    char word = 0;
    char str[] = "AaEeIiOoUu";
    int i = 0;
    int sz = strlen(str);
    while (scanf(" %c", &word) == 1) //注意%c前有空格
    {
        for(i = 0; i < sz; i++)
        {
            if(word == str[i])
              {
                printf("Vowel\n");
                break;   
              }
        }
        if(i == sz)
            {
                printf("Consonant\n");
            }
    }
    return 0;
}

解题思路——

--本题要注意的一点是,由于输入格式的要求:输入完一个字符后换行再进行输入,因为%c占位符的特殊性,必须在前面加上一个空格才会自动忽略起首的空白字符(空格 制表符 换行符),其它占位符倒是不用。


5. 牛牛的判断题

题目链接:牛客网_BC54 牛牛的判断题_入门

int main() 
{
    int x, l, r;
    while (scanf("%d %d %d", &x, &l, &r) != EOF) 
    { 
        if((x >= l ) && (x <= r))
        {
            printf("true");
        }
        else 
        {
            printf("false");
        }
    }
    return 0;
}

解题思路——

--本题的关键点就是条件的判断,注意不能直接写  l =< x <= r ,需要利用逻辑与操作符 && 进行判断。


6. 判断字母

题目链接:牛客网_BC56 判断字母_简单

int main() {
    char word;
    scanf("%c", &word);
    if((word >= 'A' && word <= 'Z') || (word >= 'a' && word <= 'z'))
    {
        printf("YES\n");
    }
    else 
    {
        printf("NO\n");
    }
    return 0;
}

解题思路——

--本题主要是考虑字母的范围,包括大小写,并且字符之间的比较确实是基于它们的ASCII码值进行的。


7. BC57 四季

题目链接:牛客网_BC57 四季_简单

--第一种方式:使用scanf格式修饰符--域宽 截取所需数据

int main() 
{
    int year = 0;
    int month = 0;
    scanf("%4d%2d", &year, &month);
    if(month >= 3 && month <= 5)
    {
        printf("spring\n");
    }
    else if(month >= 6 && month <= 8)
    {
        printf("summer\n");
    }
    else if(month >= 9 && month <= 11)
    {
        printf("autumn\n");
    }
    else {
    {
        printf("winter\n");
    }
    }
    return 0;
}

--第二种方式:直接获取后两位数值

int main() 
{
    int num = 0;
    scanf("%d", &num);
    int month = num % 100;
    if(month >= 3 && month <= 5)
    {
        printf("spring\n");
    }
    else if(month >= 6 && month <= 8)
    {
        printf("summer\n");
    }
    else if(month >= 9 && month <= 11)
    {
        printf("autumn\n");
    }
    else {
    {
        printf("winter\n");
    }
    }
    return 0;
}

相关刷题系列回顾 :

#C语言——刷题攻略:牛客编程入门训练(五):运算(二)-- 涉及 海伦公式、sqrt函数求三角形面积

#C语言——刷题攻略:牛客编程入门训练(六):运算(三)-- 涉及 辗转相除法求最大公约数

结语:本篇文章就到此结束了,本文主要是练习有关分支控制的题目,后续的题目练习难度会慢慢上来,但总体来说不会太难,喜欢的朋友们,一起来学习吧!欢迎三连~ 


网站公告

今日签到

点亮在社区的每一天
去签到