慕课哈工大C语言程序设计精髓-课后练习

第2周——数字间的那些事儿,做点计算哈
编程题选做
总是犯错的地方:(1)scanf的&有的时候会忘记
(2) scanf("%lf,%d,%lf",&rate, &year, &capital);如果不类型不匹配就无法正常读入变量
(3)x1=(-3/(2.0*2.0))+sqrt(3*3-4*2*1)/(2*2);记得加括号(2.0*2.0),同时注意除法要想得到小数的结果要把操作数写为浮点型。
(4)强制类型转换见书P39中的例子
int m=5;此时(float)m/2的类型强转能够获得2.5,但是(float)(m/2)只能得到2.0
同时,强转之后m的数据类型仍然是整型,没有发生改变。
这里需要注意一下,比较容易出错。

1输出逆序数(3分)

#include<stdio.h>
#include<math.h>
int main(){
    
    
    printf("Input x:\n");//这一行必不可少
    int x,y,x1,x2,x3;
    scanf("%d",&x);//&x forget the &
    x = fabs(x);
    x1 = x/100;
    x2 = x%100/10;
    x3 = x%10;
    y = 100*x3+10*x2+x1;
    printf("y=%d\n",y);
}

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

#include<stdio.h>
#include<math.h>
int main(){
    
    
    double rate, capital,deposit;
    int year;
    printf("Please enter rate, year, capital:\n");
    scanf("%lf,%d,%lf",&rate, &year, &capital);
    deposit = capital*pow((1+rate),year);
    printf("deposit=%.3f\n",deposit);
}

7求一元二次方程的根(3分)

#include<stdio.h>
#include<math.h>
int main(){
    
    
    double x1,x2;
    //(2*2)忘记加括号了,同时忘记写成2.0了
    x1=(-3/(2.0*2.0))+sqrt(3*3-4*2*1)/(2*2);
    x2=(-3/(2.0*2.0))-sqrt(3*3-4*2*1)/(2*2);
    printf("x1=%.4f\n",x1);
    printf("x2=%.4f\n",x2);

}

猜你喜欢

转载自blog.csdn.net/weixin_43919570/article/details/105307342
今日推荐