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

编写程序,要求输入x的值,输出y的值。分别用(1)不嵌套的if语句(2)嵌套的if语句(3)if-else语句(4)switch语句。

编写程序,要求输入x的值,输出y的值。分别用(1)不嵌套的if语句(2)嵌套的if语句(3)if-else语句(4)switch语句。

选择结构是编程语言中常用的一种控制结构,用于根据不同条件执行不同的代码块。在C语言中,我们通常使用if语句、switch语句等来实现选择结构。本文将介绍四种在C语言中常用的选择结构的应用,分别是不嵌套的if语句、嵌套的if语句、if-else语句以及switch语句。
题目

1. 不嵌套的if语句

不嵌套的if语句是最简单的选择结构之一,适用于互斥的条件。下面是一个例子,根据输入的x值计算对应的y值:

cCopy code
#include <stdio.h>int main() {float x, y;// 输入x的值printf("请输入x的值:");scanf("%f", &x);// 不嵌套的if语句if (-5 < x && x < 0)y = x;else if (x == 0)y = x - 1;else if (0 < x && x < 10)y = x + 1;elseprintf("x的值不在定义范围内\n");// 输出y的值printf("(1) 不嵌套的if语句:y = %.2f\n", y);return 0;
}

在这个例子中,根据输入的x值,程序通过不嵌套的if语句判断x所在的区间,并计算对应的y值。

2. 嵌套的if语句

嵌套的if语句可以处理更复杂的条件逻辑,但容易导致代码结构不够清晰。下面是使用嵌套if语句的例子:

cCopy code
// 程序代码同上,只是第二个例子的部分代码发生了变化// 嵌套的if语句
if (-5 < x && x < 0)y = x;
else {if (x == 0)y = x - 1;else {if (0 < x && x < 10)y = x + 1;elseprintf("x的值不在定义范围内\n");}
}// 输出y的值
printf("(2) 嵌套的if语句:y = %.2f\n", y);

在这个例子中,嵌套的if语句用于根据输入的x值计算对应的y值。

3. if-else语句

if-else语句是处理互斥条件的一种更简洁的方式,适用于每个条件都是互斥的情况。以下是使用if-else语句的例子:

cCopy code
// 程序代码同上,只是第三个例子的部分代码发生了变化// if-else语句
if (-5 < x && x < 0)y = x;
else if (x == 0)y = x - 1;
else if (0 < x && x < 10)y = x + 1;
elseprintf("x的值不在定义范围内\n");// 输出y的值
printf("(3) if-else语句:y = %.2f\n", y);

在这个例子中,if-else语句用于根据输入的x值计算对应的y值。

4. switch语句

switch语句适用于对一个变量的不同取值进行不同的处理。但需要注意的是,switch语句中的条件表达式只能是整数类型或字符类型。以下是使用switch语句的例子:

cCopy code
// 程序代码同上,只是第四个例子的部分代码发生了变化// switch语句
switch ((int)x) {case -5 ... -1:y = x;break;case 0:y = x - 1;break;case 1 ... 9:y = x + 1;break;default:printf("x的值不在定义范围内\n");break;
}// 输出y的值
printf("(4) switch语句:y = %.2f\n", y);

在这个例子中,switch语句用于根据输入的x值计算对应的y值。

注意事项和扩展

  • 注意在条件表达式中使用逻辑运算符,确保条件的正确性。
  • 对于浮点数的处理,需要考虑到精度问题,避免直接比较浮点数的相等性。
  • switch语句中的条件表达式只能是整数类型或字符类型,不能是浮点数。
  • 代码结构的清晰性是选择结构设计的一个重要考虑因素,过度的嵌套可能导致代码难以理解和维护。

选择结构是程序中控制流的关键部分,根据不同的条件执行不同的代码路径。在实际编程中,根据具体情况选择合适的选择结构是提高代码可读性和维护性的重要一环。

相关文章:

编写程序,要求输入x的值,输出y的值。分别用(1)不嵌套的if语句(2)嵌套的if语句(3)if-else语句(4)switch语句。

编写程序&#xff0c;要求输入x的值&#xff0c;输出y的值。分别用&#xff08;1&#xff09;不嵌套的if语句&#xff08;2&#xff09;嵌套的if语句&#xff08;3&#xff09;if-else语句&#xff08;4&#xff09;switch语句。 选择结构是编程语言中常用的一种控制结构&…...

AcWing 4520:质数 ← BFS

【题目来源】https://www.acwing.com/problem/content/4523/【题目描述】 给定一个正整数 X&#xff0c;请你在 X 后面添加若干位数字&#xff08;至少添加一位数字&#xff1b;添加的数不能有前导0&#xff09;&#xff0c;使得结果为质数&#xff0c;在这个前提下所得的结果应…...

00、计算机视觉入门与调优简介

写在前面 每天更新1篇文章&#xff0c;共更新100篇以上 相关代码会放在gitee上 中间会按进度和反馈安排视频讲解 预计2023-11-11开始推送文章&#xff0c;持续3个月左右 专栏简介 本专栏带你从头开始入门计算机视觉。 内容会比之前写的文章更专业更全面&#xff0c;并且你…...

.L0CK3D来袭:如何保护您的数据免受致命攻击

尊敬的读者&#xff1a; 网络犯罪的威胁日益增长&#xff0c;其中.L0CK3D勒索病毒是一种极具挑战性的数字威胁。为了助您应对这一风险&#xff0c;本文将深入探讨.L0CK3D病毒的狡猾手法、毁灭性影响&#xff0c;提供详实的数据恢复方法&#xff0c;同时为您提供极具实战性的预…...

多媒体ffmpeg学习教程

多媒体ffmpeg 目前比较流行的音视频文件为:MP4 flv m3u8 ffmpeg ffmpeg ffplay ffprobe ffserverffmpeg -i INPUT -vf "split [main][tmp]; [tmp] cropiw:ih/2:0:0, vflip [flip];[main][flip] overlay0:H/2" OUTPUTffmpeg -i 2022.mp4 -vcodec mpeg4 -b:…...

SELinux零知识学习十五、SELinux策略语言之客体类别和许可(9)

接前一篇文章&#xff1a;SELinux零知识学习十四、SELinux策略语言之客体类别和许可&#xff08;8&#xff09; 一、SELinux策略语言之客体类别和许可 4. 客体类别许可实例 &#xff08;3&#xff09;进程客体类别许可 与文件许可不同&#xff0c;许多进程许可没有直接对应到…...

OpenSign:安全可靠的电子签名解决方案 | 开源日报 No.76

microsoft/Web-Dev-For-Beginners Stars: 71.5k License: MIT 这个开源项目是一个为期 12 周的全面课程&#xff0c;由微软云倡导者团队提供。它旨在帮助初学者掌握 JavaScript、CSS 和 HTML 的基础知识。每一节都包括预习和复习测验、详细的书面指南、解决方案、作业等内容。…...

Linux | 进程间通信

目录 前言 一、进程间通信的基本概念 二、管道 1、管道的基本概念 2、匿名管道 &#xff08;1&#xff09;原理 &#xff08;2&#xff09;测试代码 &#xff08;3&#xff09;读写控制相关问题 a、读端关闭 b、写端关闭 c、读快写慢 d、读慢些快 &#xff08;4&a…...

Vue.js正式环境中配置多个请求的URL

在Vue.js中&#xff0c;你可以在正式环境中配置多个请求的URL&#xff0c;通常使用一些配置文件或者环境变量的方式。下面是一种常见的配置方式&#xff1a; 1. 创建配置文件&#xff1a;在项目的根目录下&#xff0c;创建一个配置文件&#xff0c;比如可以是config.js&#x…...

简单的 UDP 网络程序

文章目录&#xff1a; 简单的UDP网络程序服务端创建套接字服务端绑定启动服务器udp客户端本地测试INADDR_ANY 地址转换函数关于 inet_ntoa 简单的UDP网络程序 服务端创建套接字 我们将服务端封装为一个类&#xff0c;当定义一个服务器对象之后&#xff0c;需要立即进行初始化…...

人工智能-深度学习之文本预处理

文本预处理 对于序列数据处理问题&#xff0c; 这样的数据存在许多种形式&#xff0c;文本是最常见例子之一。 例如&#xff0c;一篇文章可以被简单地看作一串单词序列&#xff0c;甚至是一串字符序列。 本节中&#xff0c;我们将解析文本的常见预处理步骤。 这些步骤通常包括…...

【Java 进阶篇】插上翅膀:JQuery 插件机制详解

在前端开发中&#xff0c;JQuery 作为一个广泛应用的 JavaScript 库&#xff0c;为开发者提供了丰富的工具和方法&#xff0c;简化了 DOM 操作、事件处理等繁琐的任务。而在这个庞大的生态系统中&#xff0c;插件机制是 JQuery 的一项重要特性&#xff0c;使得开发者能够轻松地…...

手动编译GDB

手动编译GDB 起因在于使用Clang-14编译C文件并生成调试信息,使用gdb调试时报DWARF相关错误。经检查原因在于虚拟机为Ubuntu 20.04&#xff0c;使用apt下载时官方提供gdb版本为9.2&#xff0c;不支持DWARF5,而Clang-14生成的调试信息是DWARF5版本的。为解决该问题&#xff0c;手…...

竞赛选题 深度学习花卉识别 - python 机器视觉 opencv

文章目录 0 前言1 项目背景2 花卉识别的基本原理3 算法实现3.1 预处理3.2 特征提取和选择3.3 分类器设计和决策3.4 卷积神经网络基本原理 4 算法实现4.1 花卉图像数据4.2 模块组成 5 项目执行结果6 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &a…...

替换SlowFast中Detectron2为Yolov8

一 需求 FaceBookReserch中SlowFast源码中检测框是用Detectron2进行目标检测&#xff0c;本文想实现用yolov8替换detectron2二 实施方案 首先&#xff0c;yolov8 支持有自定义库ultralytics&#xff08;仅支持yolov8&#xff09;&#xff0c;安装对应库 pip install ultraly…...

轻量化网络--MobileNet V1

文章目录 depth-wise separable convolutions普通卷积depthwise conconvolutionspointwise convolutions网络结构进一步分析网络训练方式两个重要的超参数Width Multiplier: Thinner ModelsResolution Multiplier: Reduced Representation实验结果消融实验细粒度,高分辨率识别…...

gittee启动器

前言 很多小伙伴反馈不是使用gitee&#xff0c;不会寻找好的项目&#xff0c;在拿到一个项目不知道从哪里入手。 鼠鼠我呀就是宠粉&#xff0c;中嘞&#xff0c;老乡。整&#xff01;&#xff01;&#xff01; git的基本指令 在使用gitee的时候呢&#xff0c;我们只需要记住…...

Spark数据倾斜_产生原因及定位处理办法_生产环境

在最近的项目中&#xff0c;历史和实时数据进行关联平滑时出现了数据倾斜&#xff0c;产生了笛卡尔积&#xff0c;具体现象如下&#xff1a;运行内存175GB&#xff0c;核数64&#xff0c;运行代码时&#xff0c;查看SparkUI界面的active jobs &#xff0c;数据输入是1G&#xf…...

2023OceanBase年度发布会后,有感

很荣幸收到了OceanBase邀请&#xff0c;于本周四&#xff08;11月16日&#xff09;参加了OceanBase年度发布会并参加了DBA老友会&#xff0c;按照理论应该我昨天&#xff08;星期五&#xff09;就回到成都了&#xff0c;最迟今天白天就该把文章写出来了&#xff0c;奈何媳妇儿买…...

ubuntu18.04中代码迁移到20.04报错

一、 PCL库&#xff0c;Eigen库报错&#xff0c;如&#xff1a; /usr/include/pcl-1.10/pcl/point_types.h:903:29: error: ‘enable_if_t’ in namespace ‘std’ does not name a template type; did you mean ‘enable_if’?/usr/include/pcl-1.10/pcl/point_types.h:698:…...

保姆级教程:用Sen2Cor批量处理Sentinel-2 L1C到L2A(Win/Linux通用,附避坑清单)

遥感数据处理实战&#xff1a;Sen2Cor高效批量处理Sentinel-2 L1C至L2A全流程指南 当面对数百景Sentinel-2 L1C数据需要转换为L2A级别时&#xff0c;手动逐景处理不仅效率低下&#xff0c;还容易因操作失误导致数据不一致。本文将分享一套经过实际项目验证的批处理方案&#xf…...

终极浏览器资源嗅探指南:解锁网页媒体捕获的完整方案

终极浏览器资源嗅探指南&#xff1a;解锁网页媒体捕获的完整方案 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 在数字内容无处不在的今天&#x…...

如何3分钟免费让GitHub界面变成中文?终极汉化指南

如何3分钟免费让GitHub界面变成中文&#xff1f;终极汉化指南 【免费下载链接】github-chinese GitHub 汉化插件&#xff0c;GitHub 中文化界面。 (GitHub Translation To Chinese) 项目地址: https://gitcode.com/gh_mirrors/gi/github-chinese 还在为GitHub的英文界面…...

iOS 18.1 5G功能深度解析:从智能省电到SA网络优化

1. 项目概述&#xff1a;一次聚焦于连接体验的深度更新作为一名长期跟踪移动操作系统生态的从业者&#xff0c;每次苹果发布新的iOS版本&#xff0c;我都会习惯性地去拆解其更新日志&#xff0c;看看哪些是“面子工程”&#xff0c;哪些是真正触及用户体验核心的“里子升级”。…...

3分钟掌握OBS智能跟拍:告别手动调焦的直播神器

3分钟掌握OBS智能跟拍&#xff1a;告别手动调焦的直播神器 【免费下载链接】obs-face-tracker Face tracking plugin for OBS Studio 项目地址: https://gitcode.com/gh_mirrors/ob/obs-face-tracker 您是否曾因直播时频繁调整镜头位置而分心&#xff1f;是否希望有一个…...

如何在5分钟内为MASA模组全家桶安装中文汉化包:实用指南

如何在5分钟内为MASA模组全家桶安装中文汉化包&#xff1a;实用指南 【免费下载链接】masa-mods-chinese 一个masa mods的汉化资源包 项目地址: https://gitcode.com/gh_mirrors/ma/masa-mods-chinese 还在为Minecraft中MASA模组的英文界面而烦恼吗&#xff1f;MASA模组…...

保姆级教程:用Arduino IDE从零配置ESP32-CAM,5分钟搞定网络摄像头

零基础玩转ESP32-CAM&#xff1a;5分钟搭建智能网络摄像头的完整指南 第一次拿到ESP32-CAM这块小巧的开发板时&#xff0c;很多人都会被它丰富的功能所吸引——Wi-Fi连接、摄像头拍摄、甚至还能进行简单的人脸识别。但当你真正开始尝试用它搭建一个网络摄像头时&#xff0c;各种…...

从滑动变阻器到真实传感器:STM32CubeMX ADC单通道采集电压的校准与数据处理实战

从滑动变阻器到真实传感器&#xff1a;STM32CubeMX ADC单通道采集电压的校准与数据处理实战 在嵌入式开发中&#xff0c;ADC&#xff08;模数转换器&#xff09;是将模拟信号转换为数字信号的关键外设。许多开发者能够通过STM32CubeMX快速配置ADC并获取原始值&#xff0c;但当…...

为什么你的Perplexity本地服务响应慢3.7倍?:NVIDIA驱动版本、vLLM推理后端与量化精度的隐性博弈

更多请点击&#xff1a; https://codechina.net 第一章&#xff1a;Perplexity本地服务查询 Perplexity 作为一款强调实时信息检索与引用溯源的 AI 工具&#xff0c;其官方未提供公开的本地化部署方案。但开发者可通过构建轻量级代理服务&#xff0c;将本地运行的大语言模型&a…...

Python开发者三步完成Taotoken接入并调用多模型

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 Python开发者三步完成Taotoken接入并调用多模型 对于希望便捷使用多种大语言模型的Python开发者而言&#xff0c;通过一个统一的AP…...