c语言期末在线测试,第4周编程题在线测试

本文介绍了三个编程题目:一是实现分数比较,通过输入两个分数并通分来判断大小;二是存款利率计算器,考虑复利和简单利息计算方式;三是博弈论中的BestResponse,计算不同类别学生在两种学习模式下获得的总收益以确定最佳策略。每个题目都提供了示例输入和输出,以及相应的代码实现。
摘要由CSDN通过智能技术生成

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=%d/%d\n"

#include

int main()

{

int a, b, c, d;

int m, n;

printf("Input a/b, c/d:");

scanf("%d/%d,%d/%d", &a, &b, &c, &d);

m = a * d;

n = c * b;

if ( m > n )

printf("%d/%d>%d/%d", a, b, c, d);

else if ( m == n )

printf("%d/%d=%d/%d", a, b, c, d);

else

printf("%d/%d

return 0;

}

2存款利率计算器v2.0(4分)

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

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

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

deposit = capital * (1 + rate * n)

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

提示:使用数学函数需要加入头文件

程序的运行结果示例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”

#include

#include

main()

{

int n;

double a,b;

double c;

char d;

printf("Input rate, year, capital:",a,n,b);

scanf("%lf,%d,%lf",&a,&n,&b);

printf("Compound interest (Y/N)?");

scanf(" %c",&d);

if(d=='Y'||d=='y'){

c=b*pow(1+a,n);

printf("deposit = %.4f\n",c);}

else{

c=b*(1+a*n);

printf("deposit = %.4f\n",c);}

return 0;

}

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

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

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

6c1555302777729326ca3efa0910d9ec.png

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

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”

#include

#include

int main()

{

int year;

double rate,capital,deposit;

char c;

printf("Input capital, year:");

scanf("%lf,%d", &capital, &year );

printf("Compound interest (Y/N)?");

scanf(" %c",&c);

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: rate = 0; break;

}

if (rate != 0 ) {

if ( c == 'Y' || c == 'y' )

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

else

deposit = capital * (1 + rate * year);

printf("rate = %.4f, deposit = %.4f\n", rate, deposit);

} else

printf("Error year!\n");

return 0;

}

4博弈论之Best Response(6分)

在博弈论中,有一种决策称为Best Response,通俗的意思就是选择一种策略使得团体利益最大化。C语言学习成绩的评定方式分为两种,一种是自由刷题模式(compete),没有固定标准,刷题越多者排名越靠前,其期末分数越高;另一种是规定每个人必须做够多少道题(standard),达到要求就能取得相应分数。

假设一个班级中的学生分为A、B两类,A类同学学习热情很高,乐于做题,采用compete模式可以获得成就感并且在期末拿到高分,compete模式可以让他们有10分的收益;采用standard模式他们也可以在期末拿到高分,但不能满足他们的求知欲,standard模式可以让他们有8分的收益。B类同学仅仅希望期末拿高分,如果采用compete模式,他们竞争不过A类同学,期末成绩不理想,因此compete模式能给他们6分的收益;如果采用standard模式,他们可以完成规定任务并拿到高分,因此standard模式可以让他们有10分的收益。

编程输入A类和B类同学分别占班级总人数的百分比,分别计算并输出采用compete和standard两种刷题模式下的全班总收益,并输出这个班级在这场博弈中的Best Response是哪种模式。

注: 程序中使用的数据类型为float

程序运行结果示例1:

Input percent of A and B:0.2 0.8↙

compete = 6.8000

standard = 9.6000

The Best Response is standard!

程序运行结果示例2:

Input percent of A and B:0.8 0.2↙

compete = 9.2000

standard = 8.4000

The Best Response is compete!

程序运行结果示例3:

Input percent of A and B:0.5 0.5↙

compete = 8.0000

standard = 9.0000

The Best Response is standard!

输入提示信息:“Input percent of A and B:”

输入格式: “%f%f”

输出格式:“compete = %.4f\nstandard = %.4f\n”

输出提示信息:“The Best Response is compete!”

输出提示信息:“The Best Response is standard!”

#include

main()

{float a,b,compete,standard;

printf("Input percent of A and B:");

scanf("%f%f",&a,&b);

compete=a*10+b*6;

standard=a*8+b*10;

printf("compete = %.4f\nstandard = %.4f\n",compete,standard);

if(compete>= standard){

printf("The Best Response is compete!");}

else

printf("The Best Response is standard!");

}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在博弈论中,有一种决策称为Best Response,通俗的意思就是选择一种策略使得团体利益最大化。C语言学习成绩的评定方式分为两种,一种是自由刷题模式(compete),没有固定标准,刷题越多者排名越靠前,其期末分数越高;另一种是规定每个人必须做够多少道题(standard),达到要求就能取得相应分数。 假设一个班级中的学生分为A、B两类,A类同学学习热情很高,乐于做题,采用compete模式可以获得成就感并且在期末拿到高分,compete模式可以让他们有10分的收益;采用standard模式他们也可以在期末拿到高分,但不能满足他们的求知欲,standard模式可以让他们有8分的收益。B类同学仅仅希望期末拿高分,如果采用compete模式,他们竞争不过A类同学,期末成绩不理想,因此compete模式能给他们6分的收益;如果采用standard模式,他们可以完成规定任务并拿到高分,因此standard模式可以让他们有10分的收益。 编程输入A类和B类同学分别占班级总人数的百分比,分别计算并输出采用compete和standard两种刷题模式下的全班总收益,并输出这个班级在这场博弈中的Best Response是哪种模式。 【注】程序中使用的数据类型为float 程序运行结果示例1: Input percent of A and B:0.2 0.8↙ compete = 6.8000 standard = 9.6000 The Best Response is standard! 程序运行结果示例2: Input percent of A and B:0.8 0.2↙ compete = 9.2000 standard = 8.4000 The Best Response is compete! 程序运行结果示例3: Input percent of A and B:0.5 0.5↙ compete = 8.0000 standard = 9.0000 The Best Response is standard! 输入提示信息:"Input percent of A and B:" 输入格式:"%f%f" 输出格式:"compete = %.4f\nstandard = %.4f\n" 输出提示信息:"The Best Response is compete!" 输出提示信息:"The Best Response is standard!"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值