【C语言程序设计——选择结构程序设计】预测你的身高(头歌实践教学平台习题)【合集】

目录😋

任务描述

相关知识

1、输入数值

2、选择结构语句

3、计算结果并输出

编程要求

测试说明

通关代码

测试结果


任务描述

本关任务:编写一个程序,该程序需输入个人数据,进而预测其成年后的身高。

相关知识

为了完成本关任务,你需要掌握:

  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);
}
  1.  通过scanf函数从用户输入获取一个整数,并存储在num变量中。
  2.  使用if语句判断num是否为偶数。num % 2 == 0这个条件表达式利用了取模运算(%),当num除以2的余数为0时,条件为真,就会执行if语句块内的printf("%d is even\n", num);,输出num是偶数的信息。
  3.  如果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 1case 2case 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;
}

测试结果

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/503253.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【连续学习之LwM算法】2019年CVPR顶会论文:Learning without memorizing

1 介绍 年份&#xff1a;2019 期刊&#xff1a; 2019CVPR 引用量&#xff1a;611 Dhar P, Singh R V, Peng K C, et al. Learning without memorizing[C]//Proceedings of the IEEE/CVF conference on computer vision and pattern recognition. 2019: 5138-5146. 本文提…

【微服务】3、配置管理

微服务配置管理 已掌握的微服务组件及配置管理问题引出 已掌握注册中心、Openfan、远程调用、负载均衡、网关等组件&#xff0c;具备微服务开发能力&#xff0c;但仍存在其他问题待解决。微服务和网关存在大量配置文件&#xff0c;其中包含很多重复配置&#xff0c;如数据库、日…

【论文+源码】基于Spring和Spring MVC的汉服文化宣传网站

为了实现一个基于Spring和Spring MVC的汉服文化宣传网站,我们需要创建一个简单的Web应用程序来展示汉服文化和相关信息。这个系统将包括以下几个部分: 数据库表设计:定义文章、用户和评论的相关表。实体类:表示数据库中的数据。DAO层接口及MyBatis映射文件:用于与数据库交…

Apache Celeborn 在B站的生产实践

背景介绍 Shuffle 演进 随着B站业务的飞速发展,数据规模呈指数级增长,计算集群也逐步从单机房扩展到多机房部署模式。多个业务线依托大数据平台驱动核心业务,大数据系统的高效性与稳定性成为公司业务发展的重要基石。如图1,目前在大数据基础架构下,我们主要采用 Spark、Fl…

计算机网络:网络层知识点及习题(一)

网课资源&#xff1a; 湖科大教书匠 1、概述 网络层实现主机到主机的传输&#xff0c;主要有分组转发和路由选择两大功能 路由选择处理机得出路由表&#xff0c;路由表再生成转发表&#xff0c;从而实现分组从不同的端口转发 网络层向上层提供的两种服务&#xff1a;面向连接…

深入刨析数据结构之排序(上)

目录 1.内部排序 1.1概述 1.2插入排序 1.2.1其他插入排序 1.2.1.1 折半插入排序 1.2.1.2 2-路插入排序 1.3希尔排序 1.4快速排序 1.4.1起泡排序 1.4.2快速排序 1.4.2.1hoare版本 1.4.2.2挖坑版本 1.4.2.3前后指针版本 1.4.2.4优化版本 1.4.2.4.1小区间插入排序优…

卸载wps后word图标没有变成白纸恢复

这几天下载了个wps教育版&#xff0c;后头用完了删了 用习惯的2019图标 给兄弟我干没了&#xff1f;&#xff1f;&#xff1f; 其他老哥说什么卸载关联重新下 &#xff0c;而且还要什么撤销保存原来的备份什么&#xff0c;兄弟也是不得不怂了 后头就发现了这个半宝藏博主&…

huggingface 下载方法 测试ok

目录 python下载方法&#xff1a; 设置环境变量 ~/.bashrc 缓存目录&#xff0c;默认模型下载目录 安装方法&#xff1a; python 下载无token&#xff1a; python 下载带token 常见报错 登录后创建Read token 2.3 创建token 使用token登录 python下载方法&#xff1…

【网络安全技术与应用】(选修)实验8 入侵检测

参考内容:【入侵检测】window下安装snort_windows安装snort-CSDN博客 一、实验目的 深入理解入侵检测系统的原理和工作方式,熟悉入侵检测工具Snort在Windows操作系统中的安装、配置及使用方法。二、实验内容 安装WinPcap及Snort;启动Snort;自编写简单的报警规则并进行测试;…

Linux驱动开发 gpio_get_value读取输出io的电平返回值一直为0的问题

当时gpio子系统进行读取时返回必定是0 因此&#xff0c;首先必须使用platform驱动来管理gpio和pinctrl子系统&#xff0c;然后如果按照正点原子所教的设备树引脚设置为0x10B0则会导致读取到的电平值为0。 解决方法&#xff1a; 将设备树中的引脚设置为 pinctrl_gpioled: gpio…

CDP集成Hudi实战-spark shell

[〇]关于本文 本文主要解释spark shell操作Hudi表的案例 软件版本Hudi1.0.0Hadoop Version3.1.1.7.3.1.0-197Hive Version3.1.3000.7.3.1.0-197Spark Version3.4.1.7.3.1.0-197CDP7.3.1 [一]使用Spark-shell 1-配置hudi Jar包 [rootcdp73-1 ~]# for i in $(seq 1 6); do s…

web实操9——session

概念 数据保存在服务器HttpSession对象里。 session也是域对象&#xff0c;有setAttribute和getAttribute方法 快速入门 代码 获取session和塞入数据&#xff1a; 获取session获取数据&#xff1a; 请求存储&#xff1a; 请求获取&#xff1a; 数据正常打印&#xff1a…

常用LabVIEW算法及应用

在LabVIEW项目中&#xff0c;算法的应用是提高系统性能、实现特定功能、完成复杂任务的核心。LabVIEW作为一种图形化编程语言&#xff0c;允许用户通过直观的图形编程来实现各种复杂的算法。这些算法广泛应用于控制系统、数据采集、信号处理、图像处理、机器学习等领域。了解常…

AI Agent 开发共学招募 | 来 Sui 上探索自治智能的边界

Agent 一词源自拉丁语 “Agere”&#xff0c;意为“行动&#xff08;to do&#xff09;”。在大语言模型&#xff08;LLM&#xff09;的语境下&#xff0c;Agent 指的是能够感知环境、进行决策并执行任务的智能实体。 与传统的 RPA 相比&#xff0c;后者只能在预设的条件下执行…

安卓NDK视觉开发——手机拍照文档边缘检测实现方法与库封装

一、项目创建 创建NDK项目有两种方式&#xff0c;一种从新创建整个项目&#xff0c;一个在创建好的项目添加NDK接口。 1.创建NDK项目 创建 一个Native C项目&#xff1a; 选择包名、API版本与算法交互的语言&#xff1a; 选择C版本&#xff1a; 创建完之后&#xff0c;可…

计算机网络 —— 网络编程实操(1)(UDP)

计算机网络 —— 网络编程实操&#xff08;UDP&#xff09; 套接字端口套接字的定义为什么需要套接字&#xff1f; 套接字的分类1. 按照通信协议分类2. 按照地址族&#xff08;Address Family&#xff09;分类3. 按照通信模式分类 socket APIsockaddr结构 使用接口套接字初始化…

【HarmonyOS-ArkTS语言】面向对象【合集】

目录 &#x1f60b;环境配置&#xff1a;华为HarmonyOS开发者 &#x1f3af;学习小目标&#xff1a; &#x1f4d6;实验步骤及方法&#xff1a; 1.在entry/src/main/ets/utils下创建MyClass.ets和MyConfig.ets文件​编辑 2.在MyConfig.ets中创建Interface Config 和enum l…

Excel | 空格分隔的行怎么导入excel?

准备工作&#xff1a;windows&#xff0c;一个记事本程序和微软的Excel软件。 打开记事本&#xff0c;选中所有内容&#xff0c;按CtrlA全选&#xff0c;然后复制(CtrlC)。 在Excel中&#xff0c;定位到你想粘贴的单元格&#xff0c;按CtrlV进行粘贴。粘贴后&#xff0c;你会在…

HTML 显示器纯色亮点检测工具

HTML 显示器纯色亮点检测工具 相关资源文件已经打包成html等文件&#xff0c;可双击直接运行程序&#xff0c;且文章末尾已附上相关源码&#xff0c;以供大家学习交流&#xff0c;博主主页还有更多Html相关程序案例&#xff0c;秉着开源精神的想法&#xff0c;望大家喜欢&#…

idea项目导入gitee 码云

1、安装gitee插件 IDEA 码云插件已由 gitosc 更名为 gitee。 1 在码云平台帮助文档http://git.mydoc.io/?t153739上介绍的很清楚&#xff0c;推荐前两种方法&#xff0c; 搜索码云插件的时候记得名字是gitee&#xff0c;gitosc已经搜不到了。 2、使用码云托管项目 如果之…