题目内容:

设capital是最初的存款总额(即本金),rate是整存整取的存款年利率,n 是储蓄的年份,deposit是第n年年底账号里的存款总额。已知如下两种本利之和的计算方式:

按复利方式计息的本利之和计算公式为:

          deposit = capital * pow(1+rate, year)

按普通计息方式计算本利之和的公式为:

          deposit  =  capital  * (1 + rate * n)

已知银行整存整取不同期限存款的年息利率分别为:

存期1年,利率为 0.0225

存期2年,利率为 0.0243

存期3年,利率为 0.0270

存期5年,利率为 0.0288

存期8年,利率为 0.0300

若输入其他年份,则输出"Error year!"

编程从键盘输入存钱的本金和存款期限,然后再输入按何种方式计息,最后再计算并输出到期时能从银行得到的本利之和,要求结果保留到小数点后4位。

程序的运行结果示例1:
Input capital, year:10000,2↙
Compound interest (Y/N)?Y↙
rate = 0.0243, deposit = 10491.9049
程序的运行结果示例2:
Input capital, year:10000,2↙
Compound interest (Y/N)?n↙
rate = 0.0243, deposit = 10486.0000
程序的运行结果示例3:
Input capital, year:1000,4↙
Compound interest (Y/N)?y↙
Error year!

输入提示信息:“Input capital, year:”

输入提示信息:“Compound interest (Y/N)?”

存期输入错误的提示信息: “Error year!\n”

本金及存款期限的输入格式: “%lf,%d”

是否选择复利计算的输入格式: " %c" (注意:%c的前面有一个空格。输入的字符大小写皆可,即Y或y,N或n皆可)

输出格式:“rate = %.4f, deposit = %.4f\n”

为避免出现格式错误,请直接拷贝粘贴题目中给的格式字符串和提示信息到你的程序中。

时间限制:500ms内存限制:32000kb
程序:

#include<stdio.h>
#include<math.h>
int main() {int year;double capital, rate, deposit;char ch;printf("Input capital, year:");scanf("%lf,%d", &capital, &year);printf("Compound interest (Y/N)?");scanf(" %c", &ch);switch(year) {case 1: rate = 0.0225;break;case 2: rate = 0.0243;break;case 3: rate = 0.0270;break;case 5: rate = 0.0288;break;case 8: rate = 0.0300;break;default: printf("Error year!\n");}switch(ch) {case 'Y':case 'y': printf("rate = %.4f, deposit = %.4f\n", rate, deposit = capital*pow(1+rate, year));break;case 'N':case 'n': printf("rate = %.4f, deposit = %.4f\n", rate, deposit = capital*(1+rate*year));break;}return 0;
}

这个答案犯了一个逻辑错误,假如输入了一个错误的年份,这时候程序应该输出提示“Error year!”并停止,而上面的程序却继续读取了Y/N并输出rate和deposit。
可以做出修改,switch(year){}中的default处跳出循环。
①exit(0);
②goto END;
……
END:;

#include<stdio.h>
#include<math.h>
int main(){int year;double capital,rate,deposit;char ch;printf("Input capital, year:");scanf("%lf,%d",&capital,&year);printf("Compound interest (Y/N)?");scanf(" %c",&ch);switch(year){case 1: rate=0.0225;break;case 2: rate=0.0243;break;case 3: rate=0.0270;break;case 5: rate=0.0288;break;case 8: rate=0.0300;break;default: printf("Error year!\n");
}if(ch== 'Y' || ch == 'y'){deposit=capital* pow((1+rate),year);printf("rate = %.4f, deposit = %.4f\n",rate,deposit);}else if(ch == 'N' ||ch == 'n'){deposit=capital*(1+rate*year);printf("rate = %.4f, deposit = %.4f\n",rate,deposit);}return 0;
}

这个答案犯了同样的错误,值得注意的是Y/N的输入方法
①switch(ch){case ‘’}
②if ,else if 的优点在于,输入了Y/N以外的字符,不做反应.

PS:scanf("")引号内若有逗号,一定注意区分中英文,输入的时候也要注意啊,不 然总会出现奇奇怪怪的错误。

#include <stdio.h>
#include <math.h>
int main()
{int year;double mon,rate;char choice;printf("Input capital, year:");scanf("%lf,%d",&mon,&year);printf("Compound interest (Y/N)?");scanf(" %c",&choice);if(choice=='y' || choice=='Y'){switch(year){case 1:rate=0.0225;printf("rate = %.4f, deposit = %.4f\n",rate,mon*pow((1+rate),year));break;case 2:rate=0.0243;printf("rate = %.4f, deposit = %.4f\n",rate,mon*pow((1+rate),year));break;case 3:rate=0.0270;printf("rate = %.4f, deposit = %.4f\n",rate,mon*pow((1+rate),year));break;case 5:rate=0.0288;printf("rate = %.4f, deposit = %.4f\n",rate,mon*pow((1+rate),year));break;case 8:rate=0.0300;printf("rate = %.4f, deposit = %.4f\n",rate,mon*pow((1+rate),year));break;default:printf("Error year!\n");break;}}else{switch(year){case 1:rate=0.0225;printf("rate = %.4f, deposit = %.4f\n",rate,mon*(1+rate*year));break;case 2:rate=0.0243;printf("rate = %.4f, deposit = %.4f\n",rate,mon*(1+rate*year));break;case 3:rate=0.0270;printf("rate = %.4f, deposit = %.4f\n",rate,mon*(1+rate*year));break;case 5:rate=0.0288;printf("rate = %.4f, deposit = %.4f\n",rate,mon*(1+rate*year));break;case 8:rate=0.0300;printf("rate = %.4f, deposit = %.4f\n",rate,mon*(1+rate*year));break;default:printf("Error year!\n");break;}}return 0;
}

这种方式虽复杂,但逻辑正确了。

利息计算器V3.0感悟相关推荐

  1. 【BMI指数计算器V3.0】项目实战

    [BMI指数计算器V3.0]项目实战震撼发布,欢迎前来交流~~~,如果是刚来的朋友可以先从 [BMI指数计算器V1.0]项目实战,[BMI指数计算器V2.0]项目实战开始,这样循序渐进更能感受到每一个 ...

  2. 存款利率计算器v3.0

    3.存款利率计算器v3.0 设capital是最初的存款总额(即本金),rate是整存整取的存款年利率,n 是储蓄的年份,deposit是第n年年底账号里的存款总额.已知如下两种本利之和的计算方式: ...

  3. 【BMI指数计算器V4.0】项目实战

    前言 [BMI指数计算器V4.0]与[BMI指数计算器V3.0]实现的效果是一样的,不同的是在[BMI指数计算器V3.0]的基础上加入了Service层(服务),BroadcastReceiver(广 ...

  4. 存款利息python题_Python——GUI编程 利息计算器 作业9(python programming)

    importsysfrom PyQt5.QtCore import * from PyQt5.QtGui import * from PyQt5.QtWidgets import * classcal ...

  5. 【Excel】引用人民银行同期贷款利率(基准利率)和LPR利率的利息计算器(多项目)

    1 背景 之前做了<引用人民银行同期贷款利率(基准利率)和LPR利率的利息计算器>. 在此基础上,利用数组制作了<多项目&跨越多个调整期的利息计算器>,以满足同时需要计 ...

  6. 简单的Android程序多少钱,Android简单程序利息计算器

    我在编程Android的第一课,并为我的第一次尝试,我试图开发一个利息计算器.该应用程序启动,但然后崩溃.代码如下:Android简单程序利息计算器 package com.example.vitor ...

  7. pythongui做计算器_Python——GUI编程 利息计算器 作业9(python programming)

    importsysfrom PyQt5.QtCore import * from PyQt5.QtGui import * from PyQt5.QtWidgets import * classcal ...

  8. [JavaScript学习记录] 首次运用于网页,做一个简易利息计算器!!!

    目录 事件 错误处理 1.隐藏/显示文字 2.简单的加法计算器 效果: ★★★3.简易利息计算器 效果: ​​​​​​​ 事件 javascript允许html与用户交互的行为 例如:鼠标点击事件 & ...

  9. 花呗的24期利息计算器_花呗利息怎么算 利息计算器算一算花呗分期付款利率

    网购时代的到来,使得花呗非常火热,现在不少剁手一族都有使用花呗.但是,在花呗借了钱,就要还款.若然不还款,或者分期还款,就会计算利息.大家知道花呗利息怎么算?使用花呗利息计算器来计算,又是怎样计算呢? ...

最新文章

  1. 杨老师课堂之JavaScript定时器限时抢购秒杀商品案例
  2. c++ STL 容器——序列
  3. app崩溃后自动重启
  4. ip设置 kali 重置_和我一起配置黑客系统kali,带你成为大牛,你真的准备好了吗?...
  5. 【POJ - 3020】Antenna Placement (匈牙利算法,二分图最小边覆盖)
  6. python算法系列资料集(一)-2022.03.15
  7. 基于多源数据画像的失败用例智能分析
  8. idea导入ssm项目_一个简洁的适合 Java 小白练手的“秒杀”项目
  9. 管理docker容器
  10. 在Vim中上下移动整条线
  11. mysql 数据库备份与恢复_mysql 数据库备份与还原
  12. 三调数据库标注插件v1.2
  13. 2017 终点亦是起点
  14. 2021中青杯B题港珠澳大桥桥梁设计与安全策略思路代码
  15. String转换成json
  16. 64位系统上运行32位程序的内存限制
  17. 一款功能强大且专业好用的CAD图形创建工——corelcad 2021
  18. 解决java编译错误( 程序包javax.servlet不存在javax.servlet.*)
  19. 【阻性负载】半波整流可控硅控制电压计算公式
  20. 超低功耗寝室指纹锁(电池供电)

热门文章

  1. 328个计算机毕业设计题目
  2. 实操:sql注入国外xx网站
  3. Windows环境下文件夹自动同步的实现
  4. linux音源管理 二维表,Oracle【二维表管理:约束】
  5. Echarts与百度地图结合实现风场矢量图相关问题
  6. 云宏刘建平:细说中小企业如何上云
  7. 为什么大部分人的职场,总是越努力越绝望?
  8. APP推广干货:10条线上渠道引爆APP流量
  9. 爬取6874条数据,告诉你数据分析师的薪资待遇~!
  10. Redis命令INCRBY和INCR区别