当前位置: 首页 > news >正文

#C语言——刷题攻略:牛客编程入门训练(八):分支控制(二)

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

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

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

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


目录

1. BC58 健康评估

2. BC59 小乐乐找最大数

3. 牛牛的二三七整除

4. 统计数据正负个数

5. BC63 网购

6. BC64 牛牛的快递

7. BC65 计算商品打折结算金额


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

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


1. BC58 健康评估

题目链接:牛客网_BC58 健康评估_简单

#include <stdio.h>int main() 
{float height = 0, weight = 0;scanf("%f%f", &weight, &height);float BMI =  weight / (height * height);if(BMI >= 18.5 && BMI <= 23.9 ){printf("Normal\n");}else {printf("Abnormal\n");}return 0;
}

解题思路——

--本题情况也十分简单,只需要将数值按要求进行处理,在根据分支条件进行判断即可。


2. BC59 小乐乐找最大数

题目链接:牛客网_BC59 小乐乐找最大数_入门

#include <stdio.h>int main() 
{int arr[4] = {0};//循环输入int i;for(i = 0; i < 4; i++){scanf("%d", &arr[i]);}//假定第一元素最大int max = arr[0];//循环比较,当后一位比前一位大,就替换int count;//循环次数for(count = 1; count < 4; count++)//只需比较3回{if(arr[count] > max){max = arr[count];}}printf("%d", max);return 0;
}

解题思路——

--本题在之前的练习有过涉猎,思路都是一样的,小子嘴遁~~


3. 牛牛的二三七整除

题目链接:牛客网_BC61 牛牛的二三七整除_中等

#include <stdio.h>int main() 
{int a;scanf("%d", &a);int num[3] = {2, 3, 7};int flag = 0;//0代表一个都不行for(int i = 0; i < 3; i++){if(a % num[i] == 0){printf("%d ", num[i]);flag = 1;//代表至少有一个}}if(flag == 0){printf("n ");}return 0;
}

解题思路——

--本题的难点在于如何在循环判断外,进行对所有数都不能满足条件情况的的判断;这个时候,我们就可以先树立一个旗帜 flag 变量,比如 flag = 1 代表至少有一个数满足条件,相反, flag = 0 代表所有数都不能满条件;虽然这种变量的利用比较类似于布尔类型,但是这样兼容性好,也更容易想到。


4. 统计数据正负个数

题目链接:牛客网_BC62 统计数据正负个数_简单

int main()
{int num[10] = { 0 };int i = 0;for (i = 0; i < 10; i++){scanf("%d", &num[i]);}int positive = 0;//定义正数int negative = 0;//定义负数i = 0;while (i < 10){if (num[i] > 0){positive++;i++;}else if (num[i] < 0){negative++;i++;}else{i++;}}printf("positive:%d\nnegative:%d", positive, negative);return 0;
}

解题思路——

--本题代码结构简单,只需要分出大于0、小于0以及等于0的情况即可。


5. BC63 网购

题目链接:牛客网_BC63 网购_简单

int main()
{float price = 0.0;int m = 0;int d = 0;int n = 0;scanf("%f %d %d %d", &price, &m, &d, &n);if ((m == 11 && d == 11)){//有优惠卷if (n == 1){price = price * 0.7 - 50;}else{price = price * 0.7;}}else{if (n == 1){price = price * 0.8 - 50;}else{price = price * 0.8;}}printf("%.2f\n", price);return 0;
}

解题思路——

--本题分支情况清晰,但是有一点要注意,输出描述已经给出:不要希望商家倒贴钱,也就是打折加优惠,价钱为负数时按0算。


6. BC64 牛牛的快递

题目链接:牛客网_BC64 牛牛的快递_中等

int main()
{float kg = 0.0;char Urgent = 0;//加急与否int pay = 0;scanf("%f %c", &kg, &Urgent);//当重量不足1kgif (kg <= 1.0){if (Urgent == 'y'){pay = 25;}else{pay = 20;}}//超过1kgelse{float beyond = kg - 1.0;//求出超过kg数,包括小数//判断是否有小数部分,小数部分按1kg算if (beyond < 1.0 || (int)beyond != beyond){beyond += 1;}if (Urgent == 'y'){pay = 25 + beyond * 1;}else{pay = 20 + beyond * 1;}}printf("%d\n", pay);return 0;
}

解题思路——

--本题难点在于如何判断输入的kg数(>1kg)是否有小数部分,这时就可以使用强制转换成int 型:当是整数的时候,int、float 的主要数值相同,反之 int 型 < float 型。


7. BC65 计算商品打折结算金额

题目链接:牛客网_BC65 计算商品打折结算金额_简单

#include <stdio.h>int main() 
{int price = 0;//实际价格scanf("%d", &price);float pay = 0;//实付价格if(price >= 5000){pay = price * 0.6;}else if(price >= 2000){pay = price * 0.7;}else if(price >= 500){pay = price * 0.8;}else {pay = price * 0.9;}printf("%.1f\n", pay);return 0;
}

解题思路——

--本题分支结构比较清晰,为了书写简便,从后往前进行判断。

相关刷题系列回顾 :

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

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

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


http://www.xdnf.cn/news/1273771.html

相关文章:

  • 7、西门子PLC基础术语:数据单位、存储区域、寻址方式、字节序
  • scanpy单细胞转录组python教程(二):单样本数据分析之数据质控
  • Spring Boot 开发三板斧:POM 依赖、注解与配置管理
  • 第三章 向量
  • 锂电池SOH预测 | 第35讲 Matlab基于BiLSTM的锂电池健康状态估计(锂电池SOH预测),附锂电池最新文章汇集
  • Python高阶
  • spring-boot-starter-data-redis 与 org.redisson 区别 联系
  • vue如何监听localstorage
  • 嵌入式开发学习(第三阶段第四天 Linux系统开发)
  • 复现论文《基于深度强化学习的微能源网能量管理与优化策略研究》
  • 【渲染流水线】[几何阶段]-[归一化NDC]以UnityURP为例
  • 【每天一个知识点】深度领域对抗神经网络
  • WPFC#超市管理系统(5)商品布局、顾客登录、商品下单
  • 【C++详解】红黑树规则讲解与模拟实现(内附红黑树插入操作思维导图)
  • ES 调优帖:Gateway 批量写入性能优化实践
  • C语言基础05——指针
  • 计算机视觉全景指南:从OpenCV预处理到YOLOv8实战,解锁多模态AI时代(第五章)
  • MVC结构变种——第三章核心视图及控制器的整体逻辑
  • 机器学习——TF-IDF 衡量词语在文档中重要程度
  • Java 日常开发笔记(小程序页面交互传参-id)
  • ​LabVIEW键盘鼠标监控
  • 分享一个基于Python和Hadoop的的电信客户特征可视化分析平台 基于Spark平台的电信客服数据存储与处理系统源码
  • 【Python练习】086. 编写一个函数,实现简单的DHCP服务器功能
  • 刑法视野下的虚拟财产属性争议:法律风险与市场潜力解析
  • Delphi 中的字符串类型 string 详解
  • 【0基础PS】PS工具详解--缩放工具
  • Beelzebub靶机攻略
  • 【Linux | 网络】数据链路层
  • PHP版本控制系统:高效文档管理
  • 从MySQL到大数据平台:基于Spark的离线分析实战指南