c语言程序设计 第三章 代码练习

1.假如我国国民生产总值的年增长率为9%,计算10年后我国国民生产总值与现在相比增长多少百分比。计算公式为p=(1 +r)^n,r为年增长率,n为年数,p为与现在相比的倍数

代码:

  1 #include<stdio.h>
  2 #include<math.h>
  3 int main()
  4 {
  5         float r=0.09;
  6         int n=10;
  7         double p=pow((1+r),n);                            
  8         printf("p=%f\n",p);
  9         return 0;
 10 }

结果:

 遇到的一些问题:一开始输入公式的时候用的是(1+r)^n,后来发现这种写法是错的

改成pow(1+r,n),并加上头文件#include<math.h>,结果又报错了。

搜索发现是gcc编译的时候需要在后面加上 -lm。(1+r)的括号去掉也可以的哈,试了一下。

参考了这位大佬的文章:

Ubuntu下math库函数编译时未定义问题的解决_大道至简的博客-CSDN博客

2.存款利息的计算。有1000元,想存5年,可按以下5种办法存;(1)一次存5年期。(2)先存⒉年期,到期后将本息再存3年期。(3)先存3年期,到期后将本息再存⒉年期。(4)存1年期,到期后将本息将本息再存1年期,连续存5次。(5)存活期存款。活期利息每一季度结算一次。
2007年12月的银行存款利息如下:
1年期定期存款利息为4.14%;2年期定期存款利息为4.68%;3年期定期存款利息为5.4%;5年期定期存款利息为.5.85%;
活期点款利息为0.72%(活期存款每一季度结算一次利息)。
如果r为年利率,n为存款年数,则计算本息和的公式为1年期本息和:P=1000 *(1十r);
n年期本息和:P=1000 *(1+n*r);
存n次1年期的本息和:P=1000 *(1十r)";活期存款本息和:P=1000 * (1+牙) "".说明:1000 *1+)是一个季度的本息和。

代码:

  1 #include<stdio.h>
  2 #include<math.h>
  3 int main()
  4 {
  5         float r1=0.0414,r2=0.0468,r3=0.054,r5=0.0585,rh=0.0072,p1,p2,p3,p4,p    5;
  6         p1=1000*(1+5*r5);//一次存五年
  7         p2=1000*(1+2*r2)*(1+3*r3);//两年定期接三年定期
  8         p3=1000*(1+3*r3)*(1+2*r2);//三年定期接两年定期
  9         p4=1000*pow((1+r1),5);//一年定期连续存五次                          
 10         p5=1000*pow(1+rh/4,4*5);//存活期,每一季度一结算i
 11         printf("p1=%f\np2=%f\np3=%f\np4=%f\np5=%f\\n",p1,p2,p3,p4,p5);
 12         return 0;
 13 }

结果:

一些问题:做连续乘法的时候,两个括号之间没有*,导致报错。 

3.购房从银行贷了一笔款d,准备每月还款额为p,月利率为r,计算多少月能还清设d为 300000元,p为6000元,r为1%。对求得的月份取小数点后一位,对第⒉位按四舍五入处理。

代码:

  1 #include<stdio.h>
  2 #include<math.h>
  3 int main()
  4 {
  5         int d=300000,p=6000;
  6         float r=0.01,m;
  7         m=log(p/(p-d*r))/log(1+r);
  8         printf("m=%.2f",m);                                                 
  9         return 0;
 10 }

 结果:

一些问题:后面忘掉要取小数点后两位。 

C语言学习——保留小数点后n位并四舍五入_c保留小数点后n位_Crow_jing的博客-CSDN博客

4.分析下面的程序:char c1, c2; c1 = 97; c2 = 98; - 赵一凡177 - 博客园 (cnblogs.com)直接参考了这个,因为不太会!5月21号复习,完全会了,完全理解

5.用下面的scaf函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1='A',c2='a'。如何在键盘上输入?【C程序设计(第五版)第三章习题】_用下面scanf函数输入数据,使a=3_weixin_46890563的博客-CSDN博客

盗版电子书把&x搞成了&a,我一看根本没法做,所以搜索了。

 还是有一些问题,一开始输入没有打a=  b= 输出有问题。

1、第一个和第二个%d的之间除了格式控制外还有普通字符,所以要原样输出。输入的是a=3b=7而不是3 7,注意不能有空格或者其他字符。
2、输入完第一个scanf后,要先输入一个空格,再输出%f的值,否则%f的值会到上一个%d里去。
3、%e的格式其实可以直接输入小数形式,它会自动转化为%e格式。
4、特别注意:%c格式中空格或者其他非法字符都算作有效字符输入,像%c%c这种输入不能有空额或者其他字符。
5月21号复习,完全会了,完全理解

6.请编程序将“China”译为密码putchar的用法C语言:整理——putchar()用法 - 知乎 (zhihu.com)

c1+=4 就是 等价于 :c1 = c1 + 4;

代码:

  1 #include<stdio.h>
  2 int main()
  3 {
  4         char c1='C',c2='h',c3='i',c4='n',c5='a';
  5         putchar(c1);
  6         putchar(c2);
  7         putchar(c3);
  8         putchar(c4);
  9         putchar(c5);
 10         c1+=4;
 11         c2+=4;
 12         c3+=4;
 13         c4+=4;
 14         c5+=4;
 15         printf("\n%c%c%c%c%c\n",c1,c2,c3,c4,c5);                                                                                                                                 
 16         return 0;
 17 }

结果:

一些改进,在printf输出的前后都加了回车,这样看着清楚一点。

7.设圆半径r=1.5,圆柱高h=3,求圆周长C语言中怎么表示派 -π_c语言π怎么表示_伏城无嗔的博客-CSDN博客

也可以直接float pi=3.14

圆球表面积计算公式:S=4πr²=πD²

球形的体积公式为:V球=4/3πR³

圆柱体积公式:V=π*r²* h

代码:

 1 #include<stdio.h>
  2 #include<math.h>
  3 int main()
  4 {
  5         float r,h;
  6         //printf("")
  7         scanf("%f %f",&r,&h);
  8         double pi=acos(-1.0);
  9         float c=pi*2*r;
 10         float s=pi*r*r;
 11         float s2=4*pi*r*r;
 12         float v=4/3*pi*r*r*r;                                                                                                                                                    
 13         float v2=s*h;
 14         printf("圆的周长是%.2f\n 圆的面积是%.2f\n 圆球的表面积是%.2f\n 圆球的体积是%.2f\n 圆柱的体积是%.2f\n",c,s,s2,v,v2);
 15         return 0;
 16 }

结果:

注意:每次修改保存后,再次运行需要再次编译,否则结果还是跟没有修改的时候一样。

8.编程序,用getchar函数读入两个字符给c1和c2,然后分别用putchar函数和printf函数输出getchar()的用法_mlm5678的博客-CSDN博客

 (1)c1和c2可以定义为字符型或整型,二者皆可。5月21号复习,完全会了,完全理解

(2)用printf函数输出,使用%d格式符,即:

printf("%d,%d\n", c1, c2);

结果为:97,98

(3)字符变量占1个字节,整型变量占2或4个字节。故整型变量在可输出字符的范围内(ASCII码为0到127之间的字符)是可以与字符型数据互相转换的。如果整数在此范围外,不能代替。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值