实验一

来源:互联网 发布:hp打印机软件 编辑:程序博客网 时间:2024/04/27 16:38

(1)实验内容

    编写一个程序,根据用户输入的本金、存款年数、年利率计算到期本息,并扣除20%的个人所得税,输出实际利息。

编程要求:本金、年利率用float型变量存放,存款年数用整型变量存放。输出的金额数值只需两位小数。

(2)算法说明

先算应得利息t=本金a*(1+年利率p)存款年数n-本金a,再算实际利息s=应得利息t*0.8。

(3)程序清单

#include <stdio.h>
#include <math.h>
void main()
{
 int n;
 float a, p, s,t;
 scanf("a=%f p=%f n=%d",&a,&p,&n);
 t=a*pow((1+p),n)-a;
 s=t*0.8;
 printf("s=%.2f/n",s);
}

(4)测试数据与实验结果

原始数据:a=10000 p=0.01 n=5

相应的运行结果:s=408.08

必要的说明:本金a 年利率p 存款年数n 实际利息s 应得利息t

(5)分析与思考

刚开始调试时出现以下错误:

--------------------Configuration: 123 - Win32 Debug--------------------
Compiling...
123.cpp
C:/Program Files/Microsoft Visual Studio/MyProjects/123/123.cpp(8) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
C:/Program Files/Microsoft Visual Studio/MyProjects/123/123.cpp(9) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
Linking...

123.exe - 0 error(s), 2 warning(s)

经过改正后调试成功了:

--------------------Configuration: 123 - Win32 Debug--------------------
Compiling...
Skipping... (no relevant changes detected)
123.cpp

123.obj - 0 error(s), 0 warning(s)

原因至今仍没搞非常清楚,可能是连接是出了问题,编译器说可能丢失数据,在写实验内容和编程要求时发现输出的金额只需两位小数,源代码改成printf("s=%.2f/n",s);就OK了!

原创粉丝点击