zoukankan      html  css  js  c++  java
  • 第一次C语言实验报告

    一·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 等语句的用法
    • 读题应更为认真 ,避免小失误
  • 相关阅读:
    【poj2396】 Budget
    【bzoj3876】 Ahoi2014—支线剧情
    【uoj207】 共价大爷游长沙
    【bzoj3064】 CPU监控
    【codeforces 103E】 Buying Sets
    【bzoj3938】 Robot
    【bzoj1568】 JSOI2008—Blue Mary开公司
    【hdu5306】 Gorgeous Sequence
    【bzoj2229】 Zjoi2011—最小割
    【bzoj2007】 Noi2010—海拔
  • 原文地址:https://www.cnblogs.com/Lclkris/p/7702573.html
Copyright © 2011-2022 走看看