【c语言程序设计精髓】第四周作业

1分数比较(4分)
题目内容:

利用人工方式比较分数大小的最常见的方法是:对分数进行通分后比较分子的大小。请编程模拟手工比较两个分数的大小。首先输入两个分数分子分母的值,例如"11/13,17/19",比较分数大小后输出相应的提示信息。例如,第一个分数11/13小于第二个分数17/19,则输出"11/13<17/19"。

 

程序的运行结果示例1:

Input a/b, c/d:11/13,17/19↙

11/13<17/19

程序的运行结果示例2:

 

 

Input a/b, c/d:17/19,23/27↙

17/19>23/27

程序的运行结果示例3:

 

Input a/b, c/d:3/4,18/24↙

3/4=18/24

 

输入提示信息:"Input a/b, c/d:"  (注意:逗号后面有一个空格)

输入格式: "%d/%d,%d/%d"

输出格式:

比较的结果是大于:"%d/%d>%d/%d\n"

比较的结果是小于:"%d/%d<%d/%d\n"

比较的结果是相等:"%d/%d=%d/%d\n"

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

 1 #include <stdio.h>
 2 int main()
 3 {
 4     int a, b, c, d;
 5     int m, n;
 6     printf("Input a/b, c/d:");
 7     scanf("%d/%d,%d/%d", &a, &b, &c, &d);
 8     m = a * d;
 9     n = c * b;
10     if ( m > n ) 
11         printf("%d/%d>%d/%d", a, b, c, d);
12     else if ( m == n )
13         printf("%d/%d=%d/%d", a, b, c, d);
14     else
15         printf("%d/%d<%d/%d", a, b, c, d);
16     return 0;
17 }
 
2 存款利率计算器v2.0(4分)

题目内容:

 

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

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

               

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

              deposit  =  capital  * (1 + rate * n)

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

提示:使用数学函数需要加入头文件 <math.h>

程序的运行结果示例1:

 

Input rate, year, capital:0.0225,2,10000↙

Compound interest (Y/N)?Y

deposit = 10455.0625

 

程序的运行结果示例2:

 

Input rate, year, capital:0.0225,2,10000↙

Compound interest (Y/N)?n

deposit = 10450.0000

 

输入提示信息:"Input rate, year, capital:"

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

本金、存款期限以及年利率的输入格式: "%lf,%d,%lf"

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

输出格式:"deposit = %.4f\n"

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

时间限制:500ms内存限制:32000kb
 
 1 #include <stdio.h>
 2 #include <math.h>
 3 
 4 int main()
 5 {
 6     int year;
 7     double rate;
 8     double capital;
 9     float deposit;
10     char c;
11     printf("Input rate, year, capital:");
12     scanf("%lf,%d,%lf", &rate, &year, &capital );
13     printf("Compound interest (Y/N)?");
14     scanf(" %c", &c);
15     if ( c == 'Y' || c == 'y' )
16         deposit = capital * pow((1+rate), year);
17     else
18         deposit = capital * (1 + rate * year);
19     printf("deposit = %.4f\n", deposit);
20 
21     return 0;
22 }

四条测试,通过了三条,有一条提示结果错误,原因未明。

 

3
存款利率计算器v3.0(9分)

题目内容:

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

  • 按复利方式计息的本利之和计算公式为:deposit  =  capital * (1 + rate) n

  • 按普通计息方式计算本利之和的公式为: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
 
 1 #include <stdio.h>
 2 #include <math.h>
 3 
 4 int main()
 5 {
 6     int year;
 7     double rate;
 8     double capital;
 9     float deposit;
10     char c;
11     printf("Input capital, year:");
12     scanf("%lf,%d", &capital, &year );
13     printf("Compound interest (Y/N)?");
14     scanf(" %c", &c);
15     switch(year) {
16         case 1: rate = 0.0225;    break;
17         case 2: rate = 0.0243;    break;
18         case 3: rate = 0.0270;    break;
19         case 5: rate = 0.0288;    break;
20         case 8: rate = 0.0300;    break;
21         default: rate = 0;         break;    
22     }
23     if (rate != 0 ) {
24         if ( c == 'Y' || c == 'y' )
25             deposit = capital * pow((1+rate), year);
26         else
27             deposit = capital * (1 + rate * year);
28         printf("rate = %.4f, deposit = %.4f\n", rate, deposit);
29     } else
30         printf("Error year!\n");
31         
32 
33     return 0;
34 }

9条测试,通过了6条,有3条提示结果错误。

转载于:https://www.cnblogs.com/zlqw/p/8516796.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值