一·PTA实验作业
题目1:计算存款利息
本题目要求计算存款利息,计算公式为interest=money×(1+rate)year−money,其中interest为存款到期时的利息(税前),money是存款金额,year是存期,rate是年利率。
1·设计思路
- 第一步:定义变量 money rate year interest
- 第二步:计算 inserest 的值
- 第三步:输出 inserest
2·实验代码
scanf("%d %f %f",&money,&year,&rate);
a=pow((1+rate),year);
interest = money*a-money;
printf("interest = %.2f",interest);
3·遇到的问题及解决方法:
- 编译错误:
scanf("%d %d %d",&money,&year,&rate);
解决方法:float 定义的变量输入应改为 %f - 答案错误:(1+rate)^year
解决方法:计算数的幂次方应用 pow 函数
题目2:输出华氏-摄氏温度转换表
输入2个正整数lower和upper(lower≤upper≤100),请输出一张取值范围为[lower,upper]、且每次增加2华氏度的华氏-摄氏温度转换表。
温度转换的计算公式:C=5×(F−32)/9,其中:C表示摄氏温度,F表示华氏温度。
1·设计思路
- 第一步:定义 fahr celsius
- 第二步:利用 for 循环多次计算华氏和摄氏温度的转换
- 第三步:到达最大值时输出对应的 fahr 和 celsius
2·实验代码
#include<stdio.h>
int main(){
int i,lower,upper,fahr;
double celsius;
scanf("%d %d",&lower,&upper);
if(lower<=upper&&upper<=100){
printf("fahr celsius
");
for(i=lower;i<=upper;i+=2){
celsius=5.0*(i-32)/9.0;
printf("%d%6.1f
",i,celsius);
}
}else{
printf("Invalid.");
}
return 0;
}
3·遇到的问题及解决方法
- 多种错误:程序无法跳出循环
解决方法:改变 for 循环中的变量 - 部分正确:
celsius=5*(fahr-32)/9;
解决方法:celsius=5.0*(fahr-32)/9.0;
题目3:到底是不是太胖了
据说一个人的标准体重应该是其身高(单位:厘米)减去100、再乘以0.9所得到的公斤数。真实体重与标准体重误差在10%以内都是完美身材(即 | 真实体重 − 标准体重 | < 标准体重×10%)。已知市斤是公斤的两倍。现给定一群人的身高和实际体重,请你告诉他们是否太胖或太瘦了。
1·设计思路
- 第一步:定义身高 h 体重 w 和输入人数N
- 第二步:利用for循环多次输入h w
- 第三步:利用 if-else 分支判断胖瘦
- 第四步:输出对应语句
2·实验代码
for(i=1;i<=N;i++){
scanf("%d%d",&h,&w);
a=(h-100.0)*1.8;
if(fabs(w-a)<a*0.1){
printf("You are wan mei!
");
}else if((a-w)>=a*0.1){
printf("You are tai shou le!
");
}else{
printf("You are tai pang le!
");
}
3·遇到问题及解决方法
- 编译错误:
for(i=1,i<=N,i++)
解决方法:改为for(i=1;i<=N;i++)
- 部分正确:读题时产生偏差
else if((a-w)>a*0.1)
解决方法:else if((a-w)>=a*0.1)
心得体会
- 写程序时应该更为注意 scanf for 等语句的用法
- 读题应更为认真 ,避免小失误