C语言典型例题30

《C程序设计教程(第四版)------谭浩强》

习题2.7 从银行贷了一笔款d,准备每月还款额为p,月利率为r,计算多少个月能还清。

设d=30000元,p=6000元,r=1%。对求得的月份取小数点后一位,对第二位按四舍五入处理

提示:设环球的月数为m,则m=[logp-log(p-d*r)]/log(1+r)=log(p/(p-d*r))/log(1+r),log(p)表示以10为底p的对数


代码:

复制代码
//《C程序设计教程(第四版)------谭浩强》
//习题2.7 从银行贷了一笔款d,准备每月还款额为p,月利率为r,计算多少个月能还清。
//设d=30000元,p=6000元,r=1%。对求得的月份取小数点后一位,对第二位按四舍五入处理

//提示:设环球的月数为m,则m=[logp-log(p-d*r)]/log(1+r)=log(p/(p-d*r))/log(1+r),log(p)表示以10为底p的对数

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

int main()
{
	float d;//贷款数
	float p;//每月还款数
	float r;//月利率
	float m;//【计算】:还钱的月数
	
	printf("请输入贷款总数:\n");
	scanf("%f",&d);
	printf("请输入每月还款额:\n");
	scanf("%f",&p);
	printf("请输入月利率:\n");
	scanf("%f",&r);
	
	// 检查输入的合理性(月份不能为负数)
	if (p <= d * r) 
	{
	printf("每月还款额必须大于贷款利息!\n");
	return 1; // 返回错误代码
	}
	
	m=log10(p/(p-d*r))/log10(1+r);
	
	printf("还需要%.1f才可以还清\n",round(m*10)/10);//四舍五入的实现
	
	return 0;
}

运行结果:

代码运行过程中遇到的问题:

(1)在C语言中,‌要计算以10为底的对数 ,‌需要使用**log10()函数** ,‌而不是log()函数。‌

log10()函数是C标准库中的一个函数,‌用于计算以10为底的对数。‌

这个函数的原型是double log10(double x),‌它返回参数x以10为底的对数值。‌

在使用这个函数之前,‌需要包含math.h头文件,‌因为log10()函数定义在这个头文件中。‌

注释:log()函数是用于计算以e为底的对数

怎么使用log10函数?

下面是一个简单的示例代码,‌展示了如何使用log10()函数来计算一个数的以10为底的对数:‌

复制代码
#include <stdio.h>
#include <math.h> 
int main() 
{
    double num = 100.0; // 可以替换为任何正数
    double logValue = log10(num); 
    printf("The log10 of %f is %f\n", num, logValue); 
    return 0; 
}

(2)怎么实现四舍五入?

在C语言中,round函数 用于将一个浮点数四舍五入到最近的整数。这在处理需要按照特定小数位(如一位小数)的结果时非常有用。

相关推荐
wefly20172 分钟前
从使用到原理,深度解析m3u8live.cn—— 基于 HLS.js 的 M3U8 在线播放器实现
java·开发语言·前端·javascript·ecmascript·php·m3u8
luanma15098028 分钟前
PHP vs C++:编程语言终极对决
开发语言·c++·php
寂静or沉默30 分钟前
2026最新Java岗位从P5-P7的成长面试进阶资源分享!
java·开发语言·面试
csdn_aspnet38 分钟前
C/C++ 两个凸多边形之间的切线(Tangents between two Convex Polygons)
c语言·c++·算法
kyriewen111 小时前
给浏览器画个圈:CSS contain 如何让页面从“卡成PPT”变“丝滑如德芙”
开发语言·前端·javascript·css·chrome·typescript·ecmascript
娇娇yyyyyy2 小时前
QT编程(18): Qt QItemSelectionModel介绍
开发语言·qt
豆豆的java之旅2 小时前
软考中级软件设计师 数据结构详细知识点(含真题+练习题,可直接复习)
java·开发语言·数据结构
sthnyph2 小时前
QT开发:事件循环与处理机制的概念和流程概括性总结
开发语言·qt
大尚来也3 小时前
Java 反射:从“动态魔法”到生产实战的避坑指南
开发语言
无心水3 小时前
Java时间处理封神篇:java.time全解析
java·开发语言·python·架构·localdate·java.time·java时间处理