SCAU-OJ教材习题

第三章

1、分期还款(加强版)


从银行贷款金额为d,准备每月还款额为p,月利率为r。 
请编写程序输入这三个数值,
计算并输出多少个月能够还清贷款,
输出时保留1位小数。 
如果无法还清,请输出“God” 计算公式如下:

在这里插入图片描述

输入格式
三个数,分别为货款金额、每月还款和月利率,以空格分隔,均为非负数,其中d,p,r>=0

输出格式
需要还款的月份

输入样例
50 50 0.01

输出样例
1.0
#include<stdio.h>
#include<math.h>
int main()
{
    float d,p,r,m,k,n;
    scanf("%f %f %f",&d,&p,&r);

    if(p-d*r<0)//每月还款比要交的利率低
    {
        printf("God\n");
    }
    else if(d==0)//特殊情况要自己写出来,结果保留最后一位小数点。 
    {
    	printf("0.0");
	}
    else
    {
        k=log(p/(p-d*r));
		n=log(1+r);
		m=k/n;
        printf("%.1f",m);
    }
    return 0;
}

第四章

1、前序和后续字符

编写程序,输入一个数字字符,输出其前一个和后一个的数字字符,如果输入的是0前一个输出
“first”,9后一个则输出“last”,输入的不是数学字符,输出“error”
输入样例
0
输出样例
first 1

#include<stdio.h>
int main()
{
char n;
scanf("%c",&n);
if(n=='0')
{
	printf("first %c",n+1);
}	
else if(n=='9')
{
	printf("%c last",n-1);
}
else if(n>'0' && n<'9')
{
	printf("%c %c",n-1,n+1);
}
else
{
	printf("error");
}
	return 0;
} 

反思:
这个题目引申出来一些知识点。
(1)C语言怎样把字符1变成数字1?直接使用字符1减去字符0即可,如:‘1’ - ‘0’
这样做可行是因为字符度0到字符9在ascii编码时是连续的,字符0的ascii值是48,字符1的ascii值是49,其他数字字回符依次往后排,而ascii值实际上就是char型整数,所以可以用答两个字符相减得到结果。本题的字符数字转化成字符数字也可以加一减一来进行。

2、20秒后的时间

编写程序,输入三个整数变量hour(小时)、minute(分钟)、
second(秒)代表一个时间, 输出该时间20秒以后的时间。
*输入格式*
一行三个整数,分别代表小时、分钟、秒,中间使用冒号分隔
*输出格式*
输出一个时间,数字间用冒号分隔
小时、分钟、秒均占两个数字位,不足位用0补足

*输入样例*
15:30:41
*输出样例*
15:31:01
#include<stdio.h>
#include<string.h>
int main()
{
	int hour,minute,second;
	scanf("%d:%d:%d",&hour,&minute,&second);//记得里面要写冒号且要用英文冒号 
	second=second+20;
	if(second>=60)//定秒的条件 
	{
		second=second-60;
		minute=minute+1;
	}

	if(minute>=60)//定分钟的条件 
	{
		minute=minute-60;
		hour=hour+1;
	}
	if(hour>=24)//定小时条件 
	{
		hour=hour-24;
	}
	printf("%02d:%02d:%02d",hour,minute,second); 
	//02d表示两位整数,前面没有的补0 .同理03d表示三位整数 */
	return 0;
}
  • 7
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值