【小甲鱼C语言】课后笔记第一章第七节——算数运算符

news2025/1/14 1:08:53

目录

1. 算术运算符

2. 何谓“目”?

3. 表达式

4. 类型转换

5.课后习题(编程题)


1. 算术运算符

C 语言通过提供大量的运算符来支持我们对数据进行处理,前边我们将一个值存放到变量中,使用的是赋值运算符,就是等于号(=)。

这里有几点要跟大家说一下:

  • 因为键盘上没有乘号和除号两个按键,所以用星号(*)和斜杠(/)代替,这几乎是潜规则了。

  • 对于整数间的除法是采取直接舍弃小数部分的方式,而不是什么四舍五入噢。

  • 对于浮点数间的除法则能获得一个相对逼近结果的值(如果除不尽或位数特别多的话)。

  • 百分号(%)在这里是表示求余数的意思,但求余运算符要求两边的操作数都要是整数,其结果也是整数。

2. 何谓“目”?

大家可能看到有些运算符后边写双目,有些写单目,那么什么是目呢?

我们把被运算符作用的运算对象称之为操作数,比如 1 + 2,那么 1 和 2 就是被加法运算符(+)作用的两个操作数。我们说一个运算符是双目运算符还是单目运算符,就是看它有多少个操作数。

3. 表达式

用运算符和括号将操作数连接起来的式子,我们称之为表达式。

  • 1 + 1

  • 'a' + 'b'

  • a + b

  • a + 'b' + pow(a, b) * 3 / 4 + 5

4. 类型转换

当一个运算符的几个操作数类型不同时,编译器需要将它们转换为共同的某种数据类型,才能进行运算。

通常情况下,编译器会将占用坑位比较小的操作数,先转换为与坑位较大的操作数的相同类型,然后再进行运算。这样做的目的就是为了确保计算的精确度。

除了编译器帮你自动转换不同类型的操作数之外,C 语言还允许你强制转换操作数的数据类型。做法就是在操作数的前边用小括号将目标数据类型括起来。

5.课后习题(编程题)

第一题

请根据下边的提示,写一个等额本息的还款计算器。

小知识:

等额本息还款法,也称定期付息,即借款人每月按相等的金额偿还贷款本息,其中每月贷款利息按月初剩余贷款本金计算并逐月结清。
  • 月均还款 = 贷款本金 * (月利率 * (1 + 月利率)^还款月数) / ((1 + 月利率)^还款月数 - 1)
  • 总利息 = 还款月数 * 月均还款 - 贷款本金
  • 贷款本金 = 房款总额 * 按揭成数

程序要求用户输入房屋单价、面积、按揭成数、按揭年数以及基准利率,然后计算并显示等额本息还款法需要偿还的房款总额、首期付款、贷款总额、支付利息以及每月需要还款多少各项数据。) 

结果

 

代码

#include <stdio.h>
#include <math.h>

int main()
{
        float price,area,yir,mir;  //单价 面积 年利率 月利率 
        int ratio,time; // 按揭成数  按揭年数
        float total_price, total_repay; //房款总额 还款总额
        float down_payment,ave_repay;//首期付款 月均还款
        float loan,interest; //贷款总额 利率

        printf("请输出单价(元/平方):");
        scanf("%f",&price);
        printf("请输入面积:");
        scanf("%f",&area);
        printf("请输入按揭成数:");
        scanf("%d",&ratio);
        printf("请输入按揭年数:");
        scanf("%d",&time);
        printf("请输入当前基年利率:");
        scanf("%f",&yir);
        printf("==========报告结果=============\n");


        mir = yir/100/12;
        time = time * 12;
        total_price = price * area;
        down_payment = total_price * (1-(float)ratio/10);
        loan = total_price * ratio/10;
        ave_repay = loan*mir*pow((1+mir),time)/(pow((1+mir),time)-1);
        interest = ave_repay*time-loan;
        total_repay = loan + interest;

        printf("房款总额:%.2f元\n",total_price);
        printf("首期付款:%.2f\n",down_payment);
        printf("贷款总额:%.2f\n",loan);
        printf("还款总额:%.2f\n",total_repay);
        printf("支付利息:%.2f\n",interest);
        printf("月均还款:%.2f\n",ave_repay);
        return 0;
}

注1:// 后边的内容是注释部分,即写给你看的,程序编译时不会理会;
注2:按揭成数用户输入的是 7,其实表示的应该是 70%,即 0.7;
注3:用户输入的是还款年数,但程序中计算的是还款月数,所以要进行必要的转换;
注4:用户输入的年利率是 5.4,其实表示的是 5.4%,在程序中记得去掉百分号(除以 100),月利率 = 年利率 / 12。 

第二题

有 10000 元,想存 5 年,分别求出以下三种方法存得的本息和:TX28k%Ip

  • 一次性定期存 5 年;
  • 先存 3 年定期,到期后本息再存 2 年定期;
  • 存 1 年定期,到期后本息再存 1 年定期,连续存 5 次。

注:r 为年利率,n 为存款年数,则计算本息和的公式如下0k6V?s!vp$

  • 1 年本息和的计算公式:P = 10000 * (1 + r)
  • n 年本息和的计算公式:P = 10000 * (1 + r * n)
  • n 次 1年的本息和的计算公式:P = 10000 * (1 + r)^n

 

代码

#include <stdio.h>
#include <math.h>

int main()
{
        float p0 = 10000,p1,p2,p3;
        float r1 = 0.0175,r2 = 0.0225, r3 = 0.0275, r5 = 0.0275;

        p1 = p0 * (1+r5*5);
        p2 = p0 * (1+r3*3)*(1+r2*2);
        p3 = p0 * pow((1+r1),5);

        printf("第一种方案的本息和是:%.2f\n",p1);
        printf("第二种方案的本息和是:%.2f\n",p2);
        printf("第三种方案的本息和是:%.2f\n",p3);
        return 0;
}

结果

 

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

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

相关文章

lerna+rollup搭建vue组件库并发布到npm

一、框架介绍 1. lerna Lerna 是一个管理工具&#xff0c;用于管理包含多个软件包&#xff08;package&#xff09;的 JavaScript 项目。 目的是将大型代码仓库分割成多个独立版本化的软件包。 官网点这里 2. rollup Rollup 是一个 JavaScript 模块打包工具&#xff0c;可以将…

骨灰级精品,京东百万架构师亲码的MySQL内部笔记太硬核了

前言 MySQL是Java程序员面向高级的必备技能&#xff0c;很多朋友在面试时经常在这里折戟沉沙&#xff0c;饮恨不已。熟练掌握MySQL知识&#xff0c;在实践中具有很强的操作性&#xff0c;尤其是在互联网行业&#xff0c;不仅要写好代码、实现功能&#xff0c;而且还要在高并发…

P1983 [NOIP2013 普及组] 车站分级——拓扑排序+dp

[NOIP2013 普及组] 车站分级 题目描述 一条单向的铁路线上&#xff0c;依次有编号为 $1, 2, …, n $的 $n $个火车站。每个火车站都有一个级别&#xff0c;最低为 111 级。现有若干趟车次在这条线路上行驶&#xff0c;每一趟都满足如下要求&#xff1a;如果这趟车次停靠了火车…

二进制转化成十进制进行输出

给定两个十进制整数 : AAA,BBB 你需要把它们的二进制形式以十进制的运算法则相加输出结果。 例如&#xff1a; A3,B2A 3 , B 2A3,B2 的时候&#xff0c;AAA 的二进制表示是 : 111111 , BBB 的二进制表示是 101010 &#xff0c;你需要输出答案为 : 212121 输入描述: 一行两…

educoder:实验13 算法-穷举法和二分法

第1关&#xff1a;百钱百鸡 任务描述 我国古代数学家张丘建在《算经》一书中提出的数学问题&#xff1a;鸡翁一值钱五&#xff0c;鸡母一值钱三&#xff0c;鸡雏三值钱一。百钱买百鸡&#xff0c;问鸡翁、鸡母、鸡雏各几何&#xff1f; 相关知识 为了完成本关任务&#xff…

和ChatGPT大战多个回合,我知道了这些真相

最近&#xff0c;ChatGPT在国内外社交平台上可谓是火出圈了。作为一款人工智能语言模型&#xff0c;它可以和人类以对话的方式进行互动&#xff0c;比你早已熟知的Siri&#xff0c;小度还有小爱同学要更加智能与专业。因为它除了回答问题外还能进行创作&#xff0c;比如写小作文…

喜报 | Bonree ONE 2.0荣获信通院“2022IT新治理年度明星产品”

近日&#xff0c;由信通院“GOLFIT新治理领导力论坛”评选的2022IT新治理年度明星产品重磅出炉&#xff0c;博睿数据一体化智能可观测平台Bonree ONE 2.0凭借卓越的产品力以及优秀的用户体验&#xff0c;从一众产品中脱颖而出&#xff0c;获得“2022IT新治理年度明星产品”。 …

第06讲:Security在前后端分离项目中的综合应用

一、基本业务开发 1.1、需求分析 由于Security对用户进行鉴权和授权是通过用户名去数据库中取权限&#xff0c;所以我们需要开发一个功能&#xff0c;这个功能就是通过username去数据库里查该用户所具备的所有权限 1.2、完成需求 1.2.1、数据库脚本 请下载文章末尾的源代码…

JavaScript高级 |深入闭包

本文已收录于专栏⭐️ 《JavaScript》⭐️ 学习指南&#xff1a;闭包基本概念内存管理垃圾回收GC算法-标记清除GC算法-标记整理GC算法-分代收集GC算法-增量收集GC算法-闲时收集内存泄露完结散花参考文献闭包 闭包是JavaScript中非常容易让人迷惑的知识点。 《在你不知道的Java…

灯泡与影子(三分)

题目描述: 有一天&#xff0c;小明发现他的影子长度随着他在灯泡和墙壁之间走动时会发生变化&#xff0c;一个突发奇想在他的脑海里闪过&#xff0c;他现在想知道他来回走动&#xff0c;他的影子的最大长度是多少&#xff1f; 输入格式: 第一行包含一个整数T (T < 100),表…

C语言 常用标准库函数代码实现

一、内存 1. memcpy函数 memcpy 函数用于 把资源内存&#xff08;src所指向的内存区域&#xff09; 拷贝到目标内存&#xff08;dest所指向的内存区域&#xff09;&#xff1b;拷贝多少个&#xff1f;有一个size变量控制拷贝的字节数&#xff1b; 函数原型&#xff1a;void …

网络工程毕业设计 SSM汽车租赁系统(源码+论文)

文章目录1 项目简介2 实现效果2.1 界面展示3 设计方案3.1 概述3.2 系统流程3.3 系统结构设计4 项目获取1 项目简介 Hi&#xff0c;各位同学好呀&#xff0c;这里是M学姐&#xff01; 今天向大家分享一个今年(2022)最新完成的毕业设计项目作品&#xff0c;【基于SSM的汽车租赁…

mitmproxy 抓包神器-2.抓取Android 和 iOS 手机 https 请求

前言 抓取手机请求的前提条件是确保手机和电脑在同一网段上&#xff0c;也就是说使用同一WiFi。 启动服务 mitmweb 命令启动服务&#xff0c;默认监听8080端口 (venv) D:\demo\mitmproxy_xuexi>mitmweb [11:59:49.361] HTTP(S) proxy listening at *:8080. [11:59:49.36…

linux redhat8.0 权限管理

在linux里面&#xff0c;一切皆文件&#xff0c;不同的用户对文件有不同的管理权限&#xff0c;而只有root用户能为其他用户分配权限。 读&#xff08;r&#xff09;写&#xff08;w&#xff09;执行&#xff08;x&#xff09;数字表示421文件&#xff08;默认644&#xff09;…

SpringBoot-OneDay

优势 创建独立的spring程序自动配置spring简化的maven配置内嵌tomcat提供生产就绪型功能&#xff0c;如指标&#xff0c;健康检查和外部配置特性 为基于Spring 的开发提供更快的入门体验 开箱即用&#xff0c;没有代码生成&#xff0c;也无需XML 配置。同时也可以修改默认值来…

【从零开始学习深度学习】28.卷积神经网络之NiN模型介绍及其Pytorch实现【含完整代码】

目录1. NiN块介绍2. 构建NiN模型3.NIN模型每层输出形状4. 获取Fashion-MNIST数据和训练NiN模型5. 总结前几篇文章介绍的LeNet、AlexNet和VGG在设计上的共同之处是&#xff1a;先以由卷积层构成的模块充分抽取空间特征&#xff0c;再以由全连接层构成的模块来输出分类结果。其中…

RocketMQ基本概念及功能

文章目录背景架构模型NameServer 名字服务器Broker 代理服务器生产者主题队列消息消息标签消息位点消费者消费位点消费者分组订阅关系参考文章背景 RocketMQ是阿里巴巴在2012年开发的分布式消息中间件&#xff0c;专为万亿级超大规模的消息处理而设计&#xff0c;具有高吞吐量…

【VScode插件开发】<二>插件实践开发+发布

开发环境配置完&#xff0c;就得好好琢磨开发内容了&#xff0c;不能老停留在hello world上呀&#xff01; 一、开发文档结构分析 1.Package.json {"name": "kidtest","displayName": "KidTest","description": "for…

Gnoppix Linux系统发布

导读基于 Kali Linux 的 Linux 滚动发行版 Gnoppix 22.12 带来了 GNOME 43、Linux 内核 6.0 和新的升级。作为传统的现场 CD 发行版 Knoppix 项目的继承者&#xff0c;​​Gnoppix Linux​​ 是专门为渗透测试和反向工程而设计的。它为网页应用安全和数字权利保护进行了优化。除…

Java也可以轻松编写并发程序

如今&#xff0c;多核处理器在服务器&#xff0c;台式机及笔记本电脑上已经很普遍了&#xff0c;同时也被应用在更小的设备上&#xff0c;比如智能手机和平板电脑。这就开启了并发编程新的潜力&#xff0c;因为多个线程可以在多个内核上并发执行。在应用中要实现最大性能的一个…