c语言作文的题目_C语言程序设计精髓习题总汇(上)

#include

int main()

{

int x;

printf("Please enter the number:\n");

scanf("%d",&x);

if(x<=0||x>=10000) printf("error!\n");

else if(x>=0&&x<10) printf("%d: 0-9\n",x);

else if(x>=10&&x<100) printf("%d: 10-99\n",x);

else if(x>=100&&x<1000) printf("%d: 100-999\n",x);

else if(x>=1000&&x<10000) printf("%d: 1000-9999\n",x);

return 0;

}

4.9 计算一元二次方程的根v2.0

题目内容:根据下面给出的求根公式,计算并输出一元二次方程的两个实根,要求精确到小数点后4位。其中a,b,c的值由用户从键盘输入。如果用户输入的系数不满足求实根的要求,输出错误提示 “error!”。程序中所有的数据类型均为float。

#include

#include

int main()

{

float a,b,c,x,y;

printf("Please enter the coefficients a,b,c:\n");

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

x=-b/2/a;

y=b*b-4*a*c;

if(y<0)

printf("error!\n");

else

printf("x1=%7.4f, x2=%7.4f\n",x+sqrt(y)/2/a,x-sqrt(y)/2/a);

return 0;

}

4.10 分数比较

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

#include

int main()

{

int a,b,c,d;

int fenshu,fenshu2;

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

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

fenshu=a*d;

fenshu2=c*b;

if(fenshu>fenshu2)

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

else if(fenshu2>fenshu)

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

else

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

return 0;

}

4.11 存款利率计算器v2.0

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

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

deposit = capital * (1 + rate)^n

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

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

#include

#include

int main()

{

double capital , deposit , rate ;

int n;

char a;

printf("Input rate, year, capital:");

scanf("%lf,%d,%lf",&rate,&n,&capital);

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

scanf("%c",&a);

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

{

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

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

}

else if(a=='n'||a=='N')

{

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

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

}

else

printf("error");

return 0;

}

4.12 博弈论之Best Response

在博弈论中,有一种决策称为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

int 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!");

return 0;

}

第五章 循环

5.1 判断一个整型数据有几位v2.0

题目内容:从键盘输入一个整型数据(int型),编写程序判断该整数共有几位,并输出包含各个数字的个数。例如,从键盘输入整数16644,该整数共有5位,其中有1个1,2个6,2个4。

程序运行结果示例1:

Please enter the number:

12226↙

12226: 5 bits

1: 1

2: 3

6: 1

程序运行结果示例2:

Please enter the number:

-12243↙

-12243: 5 bits

1: 1

2: 2

3: 1

4: 1

输入格式: “%d”

输出格式:

输入提示信息:“Please enter the number:\n”

判断该整数共有几位:"%d: %d bits\n"

包含数字0的个数:“0: %d\n”

包含数字1的个数:“1: %d\n”

包含数字2的个数:“2: %d\n”

包含数字3的个数:“3: %d\n”

包含数字4的个数:“4: %d\n”

包含数字5的个数:“5: %d\n”

包含数字6的个数:“6: %d\n”

包含数字7的个数:“7: %d\n”

包含数字8的个数:“8: %d\n”

包含数字9的个数:“9: %d\n”

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

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

#include

#include

int main()

{

int n,a,b,c,d,e,f,g,h,i,j,counter=0,num;

a=0;

b=0;

c=0;

d=0;

e=0;

f=0;

g=0;

h=0;

i=0;

j=0;

printf("Please enter the number:\n");

scanf("%d",&n);

num=n;

do{

n=abs(n);

switch(n%10)

{

case 0:a++;break;

case 1:b++;break;

case 2:c++;break;

case 3:d++;break;

case 4:e++;break;

case 5:f++;break;

case 6:g++;break;

case 7:h++;break;

case 8:i++;break;

default :j++;

}

n=n/10;

}while(n);

counter=a+b+c+d+e+f+g+h+i+j;

printf("%d: %d bits\n",num,counter);

if(a){printf("0: %d\n",a);}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值