#C语言——刷题攻略:牛客编程入门训练(七):分支控制(一)-- 涉及 %c前加空格:忽略起首的空白字符
🌟菜鸟主页:@晨非辰的主页
👀学习专栏:《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);}elseprintf("%d\n", sum);return 0;
}
解题思路——
--本题答题思路与上一篇刷题博客的第4题类似,只需要解决获得后两位数再乘以相应位数即可。
--博客跳转链接:小乐乐改数字
--下面开始进行分支控制的题目,题目比较基础
2. 及格分数
题目链接:牛客网_BC51 及格分数_简单
int main()
{int score = 0;while(scanf("%d", &score) == 1){if(score >= 60)printf("Pass\n");elseprintf("Fail\n");}return 0;
}
解题思路——
--本题将分数分为两种情况:分数在60及以上成绩合格,以下成绩不合格,使用分支语句,思路简单,小子嘴遁~~
3. 判断整数奇偶性
题目链接:牛客网_BC52 判断整数奇偶性_入门
int main()
{int a;while(scanf("%d", &a) == 1){if(a % 2 == 0)printf("Even\n");elseprintf("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语言——刷题攻略:牛客编程入门训练(六):运算(三)-- 涉及 辗转相除法求最大公约数
结语:本篇文章就到此结束了,本文主要是练习有关分支控制的题目,后续的题目练习难度会慢慢上来,但总体来说不会太难,喜欢的朋友们,一起来学习吧!欢迎三连~