算术操作符/和*、while、for循环

news2024/11/20 20:20:33

上一次我们讲到float等浮点型的数据范围和数据类型长度,以及sizeof可以查看变量、表达式、数据类型的字节数即所占内存。

除法/和乘法*

我们继续用计算器这个例子来学习其他语法。先来看最初我们写成的代码:

#include<stdio.h>
int Add(int a, int b)
{
int c = a + b;
printf("%d\n", c);
}
int Sub(int a, int b)
{
int c = a - b;
printf("%d\n", c);
}
int main()
{
int a;
int b;
scanf_s("%d", &a);
scanf_s("%d", &b);
Add(a,b);
Sub(a,b);
return 0;
}

我们仅仅是完成了加法和减法的运算,接下来我们试试进行除法和乘法的运算:

现在就需要引入除了+、-之外的算术操作符:/ 、*。/是用来进行除法的,而*是用来乘法的。

我们最常见的除法是整数之间相除,并且分有余数和无余数这两种情况,前者比如20/3,商是6余2,后者比如15/3是为整除,商是5。我们在VS2022来看一下会不会输出我们期望中的结果:

(以后省略头文件)

int main()
{
    int a;
    int b;
    scanf_s("%d %d", &a, &b);
    int c = a / b;
    printf("%d", c);
}

当我们在控制台输入a=20,b=3时,会发现如下的结果:只有商,并没有余数

再来测试一组:输入15和3

当我们要对整型数据进行除法运算时,/会自动舍弃余数,那要是定义成浮点数呢?

int main()
{
    float a;
    float b;
    scanf_s("%f %f", &a, &b);
    float c = a / b;
    printf("%f\n", c);
}

看到控制台会发现没有舍弃余数,所以可以看出最后的结果跟定义的数据类型有关

假如只是将结果的数据类型变成浮点型,进行除法运算的两个数依旧是整数:

会发现结果虽然有小数部分,但是还是将余数舍弃掉了。所以当进行/除法运算时,一定要注意数据类型的选择,会直接影响结果。

乘法的话基本没有变化。那我们来补充一下计算器中除法和乘法的函数:当输入数据是整型类型时:

//输入数据为浮点型时将int改成float,占位符将%d改成%f
void Mul(int a, int b)
{
    int c = a * b;
    printf("%d\n", c);
}
void Div(int a,int b)
{
    int c = a / b;
    printf("%d", c);
}

while循环

当我们前面要进行多组测试时,会发现每次都要关闭控制台然后再重新运行一次,那有没有办法是可以一次运行就可以进行多次测试的呢?当然有,这时候就要引入我们的循环语句了。就比如现在这种情形,我们想要进行多组测试那借助循环语句while可以这么写:

int main()
{
    int a;
    int b;
    while (scanf_s("%d %d" , &a, &b) != EOF)//括号里面的语句是指当一直有输入需求时会进行下面大括号里面的内容
    {
        int c = a / b;
        printf("%d\n", c);
    }
}

我们编译运行一下:

会看到只要我们不主动关闭控制台就可以一直进行测试。

while翻译成英文有一个意思是:当......;所以我们可以理解成当满足了while后面括号里边的内容那么就可以进行随之而来的大括号里面的内容。括号里面出现了和赋值(=)、等于(==)很像的(!=),它指的是不等于;来解释一下scanf_s("%d %d" , &a, &b) != EOF,那我们得先看看输入函数究竟会返回什么值:暂且定义输入函数返回值类型为整型:

int a;
int b;
int result=scanf("%d %d",&a,&b);
printf("%d\n",result);

当我们像下面这样输入了两个值,result==2(result等于2)

当我们只正确输入一个值时,result==1

当我们两个数都没有正确输入时,result==0

所以我们可以知道输入函数的返回值是有效输入的个数。EOF的值是-1,所以scanf_s("%d %d" , &a, &b) != EOF指输入函数返回值不等于-1,即满足输入函数的返回值不等于-1这个条件时便可进行大括号内的除法操作。满足条件指括号里面的判断语句为真;当然也可以写scanf_s("%d %d" , &a, &b) ==2,但是EOF的用得更加普遍。

for循环

while循环中我们可以进行任意次数的多组测试,当想要结束时需要手动关闭。当进行固定组数的测试时,可以用for循环——

for(int i=0;i<5;i++)//表示进行5次的测试,可以看作是一个计数器
{
    int a;
    int b;
    scanf_s("%d %d", &a, &b);
    int c = a * b;
    printf("%d\n", c);
}

这次是程序自己主动退出来的。for后面的括号里面有三个表达式,第一个表达式用赋值符号来初始化计数器,第二个表达式是计数器结束的条件,第三个则是计数器的迭代变化。i++表示每次经过for语句都会增加一次,即自增。

操作符

++属于单目操作符。而我们前面说的+、-、*、/属于算术操作符,前面出现的==、!=、<都是关系操作符。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于YOLOv4和DeepSORT的车牌识别与跟踪系统

1. 项目简介 本项目旨在开发一个基于深度学习的自动车牌识别&#xff08;Automatic License Plate Recognition, ALPR&#xff09;系统&#xff0c;以实现对车辆牌照的实时检测、识别和追踪。自动车牌识别技术广泛应用于智慧交通、停车管理、电子收费和执法监控等领域&#xf…

Golang | Leetcode Golang题解之第440题字典序的第K小数字

题目&#xff1a; 题解&#xff1a; func getSteps(cur, n int) (steps int) {first, last : cur, curfor first < n {steps min(last, n) - first 1first * 10last last*10 9}return }func findKthNumber(n, k int) int {cur : 1k--for k > 0 {steps : getSteps(cu…

c++11新特性-下

c11的线程库可以跨平台使用。 原子性操作库(atomic) 不需要对原子类型变量进行加锁解锁操作&#xff0c;线程能够对原子类型变量互斥的访问。 atmoic<T> t; // 声明一个类型为T的原子类型变量t 在C11中&#xff0c;原子类 型只能从其模板参数中进行构造&#xff0c;不…

【规控+slam】探索建图方案及代码分享

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录 系列文章目录前言背景建图描述SLAM定位+感知数据标记构建地图自动探索建图规划方法一:手动遥控探索建图算法步骤方法二:手动给定目标点探索建图算法原理方法三:f…

VMware虚拟机连接公网,和WindTerm

一、项目名称 vmware虚拟机连接公网和windterm 二、项目背景 需求1&#xff1a;windows物理机&#xff0c;安装了vmware虚拟机&#xff0c;需要访问公网资源&#xff0c;比如云服务商的yum仓库&#xff0c;国内镜像加速站的容器镜像&#xff0c;http/https资源。 需求2&#xf…

Hive数仓操作(八)

一、Hive中的分桶表 1. 分桶表的概念 分桶表是Hive中一种用于提升查询效率的表类型。分桶指的是根据指定列的哈希值将数据划分到不同的文件&#xff08;桶&#xff09;中。 2. 分桶表的原理 哈希分桶&#xff1a;根据分桶列计算哈希值&#xff0c;对哈希值取模&#xff0c;将…

【漏洞复现】JeecgBoot 积木报表 queryFieldBySql sql注入漏洞

》》》产品描述《《《 积木报表&#xff0c;是一款免费的企业级Web报表工具&#xff0c;像搭建积木一样在线设计报表!功能涵盖&#xff0c;数据报表、打印设计、图表报表、大屏设计等! 》》》漏洞描述《《《 JeecgBoot 积木报表 queryFieldBySq| 接口存在一个 SQL 注入漏洞&…

Web和UE5像素流送、通信教程

一、web端配置 首先打开Github地址&#xff1a;https://github.com/EpicGamesExt/PixelStreamingInfrastructure 找到自己虚幻引擎对应版本的项目并下载下来&#xff0c;我这里用的是5.3。 打开项目找到PixelStreamingInfrastructure-master > Frontend > implementat…

NodeJS下载、安装及环境配置教程,内容详实

文章目录 概述关于本文NodeJS介绍 安装步骤 概述 关于本文 本文讲解如何在Windows系统中安装NodeJS并配置相关环境。 NodeJS介绍 Node.js&#xff08;通常简称为Node&#xff09;是一个开源、跨平台的JavaScript运行时环境&#xff0c;它允许开发者在服务器端运行JavaScrip…

【PyTorch】图像分割

图像分割是什么 Image Segmentation 将图像每一个像素分类 图像分割分类 超像素分割&#xff1a;少量超像素代替大量像素&#xff0c;常用于图像预处理语义分割&#xff1a;逐像素分类&#xff0c;无法区分个体实例分割&#xff1a;对个体目标进行分割全景分割&#xff1a;…

Simulink仿真中get_param函数用法

目录 语法 说明 示例 获取模块参数值和模型参数值 获取根参数名称和值 获取模型参数名称和值 获取模块列表和参数值 使用模块句柄获取模块参数值 显示模型中所有模块的模块类型 获取封装参数、Simulink 对象、模块图或注释的选项列表 获取封装参数的计算值 get_para…

如何用TorchAO优化PyTorch模型:看得见的性能提升

你有没有在训练PyTorch模型时,遇到过速度慢、内存占用高的问题?不管你是研究模型优化,还是追求性能极致的开发者,TorchAO可能正是你需要的工具。今天我们来聊聊这个PyTorch原生的架构优化工具,看看它是如何帮助你优化模型的,并且提升整体性能。 TorchAO是什么? Tor…

基于JAVA+SpringBoot+Vue的社区养老服务平台

基于JAVASpringBootVue的社区养老服务平台 前言 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN[新星计划]导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末附源码下载链接&#x1f345; 哈…

脸爱云管理系统存在任意文件上传漏洞

漏洞描述 脸爱云一脸通智慧管理平台是一套功能强大、运行稳定、操作简单方便、用户界面美观的一脸通系统。该平台整合了人脸识别技术和智能化解决方案&#xff0c;可以实现识别和管理个体身份&#xff0c;为各种场景提供便捷的身份验证和管理功能。其存在任意文件上传漏洞&…

数值计算的程序设计问题举例

### 数值计算的程序设计问题 #### 1. 结构静力分析计算 **涉及领域**&#xff1a;工程力学、建筑工程 **主要问题**&#xff1a;线性代数方程组&#xff08;Linear Algebraic Equations&#xff09; **解释说明**&#xff1a; 在结构静力分析中&#xff0c;我们需要解决复杂的…

C++第五讲(2):STL--string--string的模拟实现+知识加餐

C第五讲&#xff08;2&#xff09;&#xff1a;STL--string--string的模拟实现知识加餐 1.string的模拟实现1.1string.h头文件 -- string类的声明1.2string.cpp源文件 -- string的具体实现1.3test.cpp源文件 -- string模拟实现的测试 2.知识补充1&#xff1a;swap3.知识补充2&a…

IDEA几大常用AI插件

文章目录 前言列表GPT中文版TalkXBito AIIDEA自带的AI 前言 最近AI、GPT特别火&#xff0c;IDEA里面又有一堆插件支持GPT&#xff0c;所以做个专题比较一下各个GPT插件 列表 先看idea的plugins里支持哪些&#xff0c;搜索“GPT”之后得到的&#xff0c;我用下来感觉第一第二和…

【Iceberg分析】调研Iceberg中表的原地演变

调研Iceberg中表的原地演变 文章目录 调研Iceberg中表的原地演变原生非分区表文件关系图表的原地演变之表schema演变新增字段new_column文件关系变化图为新增字段写入数据文件关系变化图删除新增字段文件关系变化图新增字段new_column2文件关系变化图删除数据文件关系变化图 原…

无人机之数据提取篇

一、无人机平台与传感器 无人机是进行数据采集的基础设施&#xff0c;其稳定性、可靠性、灵活性和负载能力直接影响到数据采集的效果。根据实际需求&#xff0c;需选择适合的无人机类型&#xff0c;如固定翼无人机适合大范围、长时间的数据采集&#xff0c;而多旋翼无人机则更适…

从Fast-UMI到Diff-Control:分别改进UMI的硬件、UMI所用的扩散策略

前言 24年9.28日下午&#xff0c;微信上的好友丁研究员和我说 hi 周总&#xff0c;我们基于umi改进了一下——弄了一个用户友好的采集系统(当然&#xff0c;现在这个版本还比较初级 后续不断迭代)项目网站为&#xff1a;https://fastumi.com/ 技术报告见&#xff1a;https://…