【C语言程序设计——选择结构程序设计】预测你的身高(头歌实践教学平台习题)【合集】
目录😋
任务描述
相关知识
1、输入数值
2、选择结构语句
3、计算结果并输出
编程要求
测试说明
通关代码
测试结果
任务描述
本关任务:编写一个程序,该程序需输入个人数据,进而预测其成年后的身高。
相关知识
为了完成本关任务,你需要掌握:
- 输入数值
- 选择结构语句
- 计算结果并输出
1、输入数值
使用
scanf
进行输入
- 在 C 语言中,
scanf
函数用于从标准输入(键盘)读取数据。例如,输入一个整数:
#include <stdio.h> int main() {int num;scanf("%d", &num);printf("You entered: %d\n", num);return 0; }
当输入多个数据时,可以这样:
int num1, num2; scanf("%d %d", &num1, &num2);
输入字符串
- 输入字符串可以使用
%s
格式说明符,但要注意scanf
读取字符串时遇到空格或换行符会停止。例如:char str[100]; scanf("%s", str);
- 如果要输入包含空格的字符串,可以使用
fgets
函数(需要包含<stdio.h>
):char str[100]; fgets(str, sizeof(str), stdin); // 如果不想要最后的换行符,可以这样处理 if (str[strlen(str) - 1] == '\n') {str[strlen(str) - 1] = '\0'; }
输入验证
- 当用户输入错误类型的数据时,
scanf
会返回错误。可以通过检查scanf
的返回值来进行输入验证。例如:int num; if (scanf("%d", &num)!= 1) {printf("Invalid input\n");// 可以进行一些处理来清除输入缓冲区的错误数据while (getchar()!= '\n'); }
2、选择结构语句
条件语句(if、if-else、switch)
- if 语句:
if
语句是 C 语言中用于实现条件判断和分支执行的基本结构之一。其核心在于根据给定的条件表达式的真假来决定是否执行特定的代码块。
- 条件表达式可以是任何能够得出布尔值(真或假)的表达式,例如比较运算(
>
、<
、>=
、<=
、==
、!=
)、逻辑运算(&&
、||
、!
)以及函数调用(只要函数返回值能被隐式转换为布尔值)等的组合。例如:if (a > 10 && b < 20) { /* 执行语句 */ }
,这里只有当a
大于10
并且b
小于20
这两个条件同时满足时,花括号内的代码才会被执行。- 执行语句块可以是一条或多条语句,如果只有一条语句,花括号可以省略,但为了增强代码的可读性和可维护性,通常建议加上花括号。例如:
if (x == 5) printf("x is 5\n");
这种写法在简单情况下可行,但如果后续需要添加更多语句,就容易出现错误,而写成if (x == 5) { printf("x is 5\n"); otherFunctionCall(); }
则更加清晰和安全。- if - else 语句:
if - else
语句在if
语句的基础上,为条件不成立的情况提供了另一个执行路径。当if
后面的条件表达式为假时,就会执行else
后面的语句块。
- 这种结构在很多实际场景中非常有用,比如前面提到的判断成绩是否及格的例子,它确保了程序在任何情况下都有明确的输出,避免了因条件不满足而导致的不确定性。再比如在一个判断数字正负性的程序中:
if (num > 0) { printf("正数\n"); } else if (num < 0) { printf("负数\n"); } else { printf("零\n"); }
,这里通过else if
进一步细分了条件,对num
的三种可能情况(大于0
、小于0
、等于0
)都进行了相应的处理,使程序的逻辑更加严谨和完整。- 用于根据不同条件执行不同的代码块。
例如,判断一个数是奇数还是偶数:
int num; scanf("%d", &num); if (num % 2 == 0) {// 当num除以2的余数为0时,说明num是偶数printf("%d is even\n", num); } else {// 当num除以2的余数不为0时,说明num是奇数printf("%d is odd\n", num); }
- 通过
scanf
函数从用户输入获取一个整数,并存储在num
变量中。- 使用
if
语句判断num
是否为偶数。num % 2 == 0
这个条件表达式利用了取模运算(%
),当num
除以2
的余数为0
时,条件为真,就会执行if
语句块内的printf("%d is even\n", num);
,输出num
是偶数的信息。- 如果
num
除以2
的余数不为0
,即条件为假,那么就会执行else
语句块内的printf("%d is odd\n", num);
,输出num
是奇数的信息。
switch
语句
switch
语句主要用于处理多个固定的、离散的选项情况。它根据一个整型表达式(通常是一个变量)的值,与各个case
常量进行匹配,一旦匹配成功,就执行对应的case
分支下的语句,直到遇到break
语句或者switch
语句结束。- 当有多个固定的选项时,可以使用
switch
语句。例如,在一个简单的菜单选择程序中:
int choice; scanf("%d", &choice); switch (choice) {case 1:printf("打开文件\n");break;case 2:printf("保存文件\n");break;case 3:printf("退出程序\n");break;default:printf("无效的选择,请重新输入\n"); }
这里,
switch
表达式choice
的值会依次与case 1
、case 2
、case 3
进行比较,如果choice
等于1
,就会执行printf("打开文件\n");
,然后遇到break
语句,跳出switch
结构;如果choice
的值与所有case
常量都不匹配,就会执行default
分支下的语句,提示用户输入无效。需要注意的是,
case
常量的值必须是唯一的,且在同一个switch
语句中不能重复;break
语句的作用至关重要,如果遗漏break
,程序将会继续执行下一个case
分支的语句,这可能不是预期的行为,这种现象被称为 “case 穿透”,在某些特定情况下可以利用这一特性来简化代码,但在大多数情况下,需要谨慎使用break
来确保程序的正确性。
3、计算结果并输出
基本运算
- C 语言支持各种算术运算,如加法
+
、减法-
、乘法*
、除法/
和取模%
。例如:int a = 10, b = 3; int sum = a + b; int diff = a - b; int product = a * b; int quotient = a / b; int remainder = a % b;
函数和表达式
- 可以定义函数来进行计算。例如,定义一个函数来计算两个数的平方和:
int squareSum(int x, int y) {return x * x + y * y; } int main() {int a = 3, b = 4;int result = squareSum(a, b);printf("The square sum is: %d\n", result);return 0; }
输出结果
- 使用
printf
进行输出。除了简单的变量输出,还可以输出表达式的结果:int a = 5; printf("The value of a + 10 is: %d\n", a + 10);
编程要求
根据提示,在右侧编辑器补充代码,计算并输出最终预测的身高。
测试说明
平台会对你编写的代码进行测试:
- 性别为男:输入1
- 性别为女:输入0
- 爱好体育锻炼:输入1,否则输入0
- 好好吃饭输入1,否则输入0
- 输入的数据用空格或回车分隔。
测试输入:
1 165 175 1 1
预期输出:
your height is 192.890167
测试输入:
0 160 175 0 0
预期输出:
your height is 160.762497
开始你的任务吧,祝你成功!
通关代码
#include<stdio.h>
int main()
{float mon,dad,height;int sex;int sport, eat;//printf("Please your input your sex, Male input 1,Female input 0\n");/*********Begin*********/scanf("%d",&sex);//printf("Please input your mother and fathers height\n");scanf("%f %f", &mon, &dad); //printf("Please input if you like sport and have a good eat habit?Yes input 1,No input 0\n ");scanf("%d %d", &sport, &eat);if (sex == 1){height = (mon + dad) * 0.54;}else{height = (mon * 0.923 + dad) / 2;}if (sport == 1){height *=1.02;}if (eat == 1){height *=1.03;}printf("your height is %f",height);/*********End**********/ return 0;
}
测试结果
相关文章:

【C语言程序设计——选择结构程序设计】预测你的身高(头歌实践教学平台习题)【合集】
目录😋 任务描述 相关知识 1、输入数值 2、选择结构语句 3、计算结果并输出 编程要求 测试说明 通关代码 测试结果 任务描述 本关任务:编写一个程序,该程序需输入个人数据,进而预测其成年后的身高。 相关知识 为了完成本…...
简单两步使用ssh配置内网穿透
解决问题:内网主机没有公网IP,无法从外网登录 流程 首先去阿里云租一台最便宜的服务器作为中转服务器 登录中转服务器(cloudserver) ssh [cloudserver] # 开放对应中转服务 ufw allow [remote_port] #remote_port 2222 vim /etc/ssh/sshd_config将对…...
M系列芯片切换镜像源并安装 openJDK17
1. 查找openjdk版本 执行:brew search openjdk,注意:执行命令后,如果得到的结果中没有红框内容,则需要更新一下 brew 更新 brew 分别执行以下命令: cd "$(brew --repo)" export HOMEBREW_API_D…...

图像处理-Ch6-彩色图像处理
Ch6 彩色图像处理 无广告更易阅读,个人博客点此进入<– 文章目录 Ch6 彩色图像处理彩色基础彩色模型(Color models)RGB(red, green, blue)CMY & CMYK(cyan, magenta, yellow/and black)HSI(hue, saturation, intensity)HSV(hue, saturation, value) 颜色空…...

Redis可视化工具 RDM mac安装使用
第一步:https://pan.baidu.com/s/10vpdhw7YfDD7G4yZCGtqQg?at1673701651004将dmg下载 第二部:点击下载的dmg文件进行安装、mac可能会提示: 无法验证此App不包含恶意软件 解决方法: 打开系统偏好设置>安全性与隐私>通用&am…...

单元测试/系统测试/集成测试知识总结
🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 一、单元测试的概念 单元测试是对软件基本组成单元进行的测试,如函数或一个类的方法。当然这里的基本单元不仅仅指的是一个函数或者方法࿰…...

多目标应用(一):多目标麋鹿优化算法(MOEHO)求解10个工程应用,提供完整MATLAB代码
一、麋鹿优化算法 麋鹿优化算法(Elephant Herding Optimization,EHO)是2024年提出的一种启发式优化算法,该算法的灵感来源于麋鹿群的繁殖过程,包括发情期和产犊期。在发情期,麋鹿群根据公麋鹿之间的争斗分…...
机器学习和深度学习中的种子设置
一、常见的随机数生成器及其对应的设置方法: Python内置的随机数生成器: import random random.seed(manual_seed)NumPy的随机数生成器: import numpy as np np.random.seed(manual_seed)PyTorch的随机数生成器: import torch tor…...

[手机Linux] 七,NextCloud优化设置
安装完成后在个人设置里发现很多警告,一一消除。 只能一条一条解决了。 关于您的设置有一些错误。 1,PHP 内存限制低于建议值 512 MB。 设置php配置文件: /usr/local/php/etc/php.ini 把里面的: memory_limit 128M 根据你自…...

Ruby+Selenium教程
什么是 Minitest? Minitest 是 Ruby 的测试框架,提供一整套测试工具。它运行速度快,支持 TDD、BDD、模拟和基准测试 以下是使用Ruby、Selenium WebDriver和Minitest 的脚本,用于断言 Restful Booker Platform 的“页面标题”等于…...

【论文阅读笔记】Learning to sample
Learning to sample 前沿引言方法问题声明S-NET匹配ProgressiveNet: sampling as ordering 实验分类检索重建 结论附录 前沿 这是一篇比较经典的基于深度学习的点云下采样方法 核心创新点: 首次提出了一种学习驱动的、任务特定的点云采样方法引入了两种采样网络&…...
边缘计算收益稳定
要使自己的PCDN(Personal Content Delivery Network,个人内容分发网络)收益更稳定,可以从以下几个方面进行努力: 一、选择合适的PCDN平台 平台稳定性:选择技术成熟、稳定性高的PCDN平台,确保内…...
域名和服务器是什么?域名和服务器是什么关系?
在互联网的生态系统中,域名和服务器是两个至关重要的组成部分。它们共同构成了我们访问网站和使用在线服务的基础。那么域名和服务器是什么?域名和服务器是什么关系? 1、域名的概念 域名是互联网中用于标识特定地址的一种文字形式。它是用户访问网站时输入的易记…...
IBatis和MyBatis在细节上的不同有哪些
iBatis 和 MyBatis 都是流行的 Java 持久化框架,用于简化数据库交互。MyBatis 是从 iBatis 演化而来,MyBatis 在 iBatis 的基础上做了很多改进和优化,因此两者在设计和功能上存在一些差异。以下是它们在细节上的主要区别: 1. 框架…...

使用Python获取PDF文本和图片的精确位置
在处理和分析PDF文档时,获取文本和图片在页面上的精确位置是一个重要的操作。通过确定这些元素的具体坐标,我们可以实现对PDF内容的更精细控制和理解,这对于自动化文档处理、信息提取以及内容重组等工作流程尤为关键。通过Python编程语言&…...
【AI日记】24.12.25 kaggle 比赛 2-13
【AI论文解读】【AI知识点】【AI小项目】【AI战略思考】【AI日记】 工作 参加:kaggle 比赛 Regression with an Insurance Dataset时间:8 小时 读书 书名:我们能做什么 : 胡适与中国青年最真诚的分享时间:1.5 小时 律己 工作…...
【网络安全】用 Frida 修改软件为你所用
用 Frida 修改软件为你所用 Frida是一个强大的设备操作工具,它允许我们分析、修改和与运行中的应用程序交互。Frida通过在目标进程中创建一个线程,并通过这个线程执行一些启动代码来实现交互功能。这种交互被称为“代理”,它允许我们添加Jav…...

《信管通低代码信息管理系统开发平台》Windows环境安装说明
1 简介 《信管通低代码信息管理系统应用平台》提供多环境软件产品开发服务,包括单机、局域网和互联网。我们专注于适用国产硬件和操作系统应用软件开发应用。为事业单位和企业提供行业软件定制开发,满足其独特需求。无论是简单的应用还是复杂的系统&…...

使用强化学习与遗传算法优化3D低空物流路径_版本2
在快速发展的物流与自主系统领域,优化无人机在三维空间中的飞行路径至关重要。无论是在城市环境中导航还是在复杂地形中穿行,确保高效、安全且节能的航线规划能够显著提升运营效率。本文将深入探讨一种创新方法,结合强化学习(Rein…...

【MinIO系列】MinIO Client (mc) 完全指南
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...

【笔记】Trae+Andrioid Studio+Kotlin开发安卓WebView应用
文章目录 简介依赖步骤AS(Andriod Studio)创建项目AS创建虚拟机TRAE CN 修改项目新增按键捕获功能 新增WebViewWebView加载本地资源在按键回调中向WebView注入JS代码 最终关键代码吐槽 简介 使用Trae配合Andriod Studio开发一个内嵌WebView的安卓应用, 在WebView中加载本地资源…...
JavaScript性能优化实战的技术文-——仙盟创梦IDE
JavaScript性能优化实战技术文章大纲 性能优化的核心原则 减少代码执行时间降低内存消耗优化网络请求提升用户体验 代码层面的优化 减少全局变量使用,避免命名冲突和内存泄漏使用节流(throttle)和防抖(debounce)优…...

基于Piecewise Jerk Speed Optimizer的速度规划算法(附ROS C++/Python仿真)
目录 1 时空解耦运动规划2 PJSO速度规划原理2.1 优化变量2.2 代价函数2.3 约束条件2.4 二次规划形式 3 算法仿真3.1 ROS C仿真3.2 Python仿真 1 时空解耦运动规划 在自主移动系统的运动规划体系中,时空解耦的递进式架构因其高效性与工程可实现性被广泛采用。这一架…...

K8S集群主机网络端口不通问题排查
一、环境: k8s: v1.23.6 docker: 20.10.14 问题和故障现象:devops主机集群主机节点到端口8082不通(网络策略已经申请,并且网络策略已经实施完毕),而且网络实施人员再次确认,网络策…...
vue3前端实现一键复制,wangeditor富文本复制
首先需要拿到要复制的内容,然后调用https的navigator.clipboard方法进行复制,但是这个因为浏览器策略只能在本地localhost和https环境下才能生效,http环境访问不到这个方法,在http环境在可以使用传统方式创建 textarea 进行复制 …...
npm run build 报错:Some chunks are larger than 500 KB after minification
当我们的 Vue 项目太大,使用 npm run build 打包项目的时候,就有可能会遇到以下报错: (!) Some chunks are larger than 500 kB after minification. Consider: - Using dynamic import() to code-split the application - Use build.rollup…...
Telnet 命令详解
Telnet 命令详解:从基础到实战应用 Telnet 是一种历史悠久的网络协议,广泛用于远程登录和管理设备。尽管如今更安全的 SSH 协议已逐渐取代其地位,但 Telnet 在特定场景下依然发挥着重要作用。本文将深入解析 Telnet 命令的参数、使用场景及注…...
PaddleNLP 的文本分类项目
以下是一个基于 PaddleNLP 的文本分类项目,按照标准工程结构组织,并包含测试数据集和完整流程。这个示例使用ERNIE模型处理IMDB电影评论情感分析任务。 项目工程结构 ernie_sentiment_analysis/ ├── data/ # 数据集目录 │ ├─…...

【实证分析】上市公司全要素生产率+5种测算方式(1999-2024年)
上市公司的全要素生产率(TFP)衡量企业在资本、劳动及中间投入之外,通过技术进步、管理效率和规模效应等因素提升产出的能力。与单纯的劳动生产率或资本生产率不同,TFP综合反映了企业创新能力、资源配置效率和组织优化水平…...

NW907NW918美光固态闪存NW920NW930
NW907NW918美光固态闪存NW920NW930 技术解析:美光NW系列固态闪存的核心突破 美光NW907、NW918、NW920、NW930四款固态闪存产品,代表了当前存储技术的顶尖水平。其核心创新在于G9 NAND架构的深度优化,采用更先进的5纳米制程工艺,…...