第二次作業


作業要求:https://edu.cnblogs.com/campus/hljkj/CS201802/homework/2292 

第三次作業:7-5.計算分段函數[2] 

#include <stdio.h>
#include <math.h>
int main(void)
{
  double x=0,y=0;
  scanf("%lf",&x);
  if(x>=0){
        y=pow(x,0.5);
    }
  else{
        y=pow(x+1,2)+2*x+1/x;
    }
     printf("f(%.2lf) = %.2lf",x,y);
     return 0;
}

解題思路:1.定義兩個雙浮點型變量x , y;

     2.輸入任一值 x;

     3.如果輸入的值 x 大於或等於0,則用y=x^(1/2)計算y的值,最后直接輸出y值;

     4.否則跳過if計算式,用y=(x+1)^2+2*x+1/x計算並輸出y的值;

流程圖:              

                            

 運行結果:

 

      

      

                剛開始程序運行一直出現答案錯誤,在DEVC++中試驗發現結果與案例不同,小數點后的數過多,接下來,我進行了調試,輸入案例中的數字10:

因為x=10>0,所以調到if句,再按回車,直接調到輸出結果,結果出現:

與案例中的結果不一樣,案例中是f(10.00)=3.16,而我的是f(10)=3,於是我意識到題中的要求,要保留兩位小數,所以:

所以主要原因是輸出雙浮點應該是%.2f,而不是%.lf。以后要注意審題和輸出寫法。

第四次作業 7-2 高速公路超速處罰

 

#include <stdio.h>
#include <math.h>
int main(void)
{
  double x,y;
  double a;
  scanf("%lf %lf",&y,&x);
   a=(y-x)*100/x;
  if(a<10||y<x){
    printf("OK\n");
  }
  else if(a>=50){
    printf("Exceed %.0f%%. License Revoked\n",a);
  }
   else {
     printf("Exceed %.0f%%. Ticket 200\n",a);
   }
  
  return 0;
}

 

解題思路:1.定義三個雙浮點型變量 x, y, a;

     2.輸出兩個x ,y的變量值;

     3.用x,y的式子計算a;

     4.如果a<10或y<x,則輸出"ok";

     5.如果a>=50,則輸出Exceed  x%. License Revoked;

     6.否則輸出Exceed x%. Ticket 200;

流程圖:

運行結果:

 

提交發現只有第一個案例輸出正確,接下來進行調試:輸入案例1中的65,60;

 

這項沒問題,輸入案例2中的110,100;

發現輸出結果與案例中不一致,接下來輸入案例3中的200,120;

發現這個也與案例3答案不一致,之后我通過詢問同學得知在輸出中“f”后需輸入兩個“%”號,因為一個百分號是代表百分之幾,另一個是輸出數據必須要帶的;結果:

 

所以以后要記住相同%號的不同用處。

本周總結:本周老師主要講了條件switch語句,通過pta上的練習和課本上的聯系發現了問題和獲得了一些收獲,通過老師的講解和課本的詳述了解並知道運行調試。

問題:1.發現一直出現輸出上的錯誤,小數點后留多少位。

   2.審題不清

           3.不會想到轉換,用幾個未知數轉化為一個,這樣作為if句的條件

博客字數,代碼行數:

 

作業點評:www.cnblogs.com/mayijing/p/9905748.html

       www.cnblogs.com/zst1/p/9912320.html

       www.cnblogs.com/cyw1/p/9905822.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM