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

目录

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;
}

结果

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

꧁༺๑小王不是程序员๑༻꧂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值