C語言第二次博客作業---分支結構


一、PTA實驗作業

題目1:7-1 計算分段函數[2]

本題目要求計算下列分段函數f(x)的值

1.代碼

   double x,fx;
   scanf("%lf",&x);
   if (x>=0)
   {
   	fx=pow(x,0.5);
   }
   else
   {
   	fx=(x+1)*(x+1)+2*x+1/x; 
   }
   printf("f(%.2f) = %.2f",x,fx); 

2.設計思路

第一步:定義雙精度浮點變量x,fx
第二步:利用if else分支結構分別計算不同情況下fx的值
第三步:若x>=0則輸出fx=pow(x,0.5)
第四步:否則輸出fx=(x+1)(x+1)+2x+1/x;
第五步:按題目要求輸出結果

3.本題調試過程碰到問題及解決辦法

(1)誤用中文符號,經devc檢查后改正錯誤
(2)未使用數學函數#include<math.h>導致輸出錯誤,檢查后發現錯誤
(3)使用pow函數時應該添加#include<math.h>

4.本題PTA提交列表

題目2:7-4 輸出三角形面積和周長

本題要求編寫程序,根據輸入的三角形的三條邊a、b、c,計算並輸出面積和周長。注意:在一個三角形中, 任意兩邊之和大於第三邊。三角形面積計算公式:area=√​s(s−a)(s−b)(s−c)​​​,其中s=(a+b+c)/2。

1.代碼

int a,b,c;
  double s,area,length;
  scanf("%d%d%d",&a,&b,&c);
  if (a+b>c&&a+c>b&&b+c>a)
  {
    s=(a+b+c)*1.00/2;
    area=sqrt(s*(s-a)*(s-b)*(s-c));
    length=a+b+c;
    printf("area = %.2f; perimeter = %.2f",area,length);
  }
  else
  {
    printf("These sides do not correspond to a valid triangle");
  }

2.設計思路

第一步:定義整型變量a,b,c以及雙精度浮點變量area,length
第二步:利用if-else分支結構,若輸入的兩邊之和小於第三邊,則輸出錯誤提示
第三步:否則根據題目公式計算三角形周長以及面積
第四步:按照題目格式輸出答案

3.本題調試過程碰到問題及解決辦法

(1)變量定義錯誤,沒有根據要求定義雙精度浮點型變量,導致輸出錯誤,認真閱讀課本得到解決
(2)變量相乘沒有用*導致錯誤,經檢查發現錯誤

4.本題PTA提交列表

題目3:7-6 出租車計價

題要求根據某城市普通出租車收費標准編寫程序進行車費計算。具體標准如下:
起步里程為3公里,起步費10元;
超起步里程后10公里內,每公里2元;
超過10公里以上的部分加收50%的回空補貼費,即每公里3元;
營運過程中,因路阻及乘客要求臨時停車的,按每5分鍾2元計收(不足5分鍾則不收費)。

1.代碼

int minute,money,k;
  double l;
  scanf("%lf%d",&l,&minute);
  if(minute>=5)
  {
  k=minute/5*2;
   } 
   else
   {
   	k=0;
   }
  if(l<=3)
  {
  	printf("%d",10+k);
  }
  else if(l<=10)
  {
  	money=((10+(l-3)*2+k)+0.5)*10/10;
  	printf("%d",money);
  }
  else if(l>10)
  {
  	money=((24+(l-10)*3+k)+0.5)*10/10;
  	printf("%d",money);

2.設計思路

第一步:根據題目要求,定義變量
第二步:利用if-else分支結構,分別計算題目中當起步里程為3公里,超起步里程后10公里,以及超過10公里的時所花費的費用
第三步:用另一個分支計算當停車時長大於分鍾時的額外費用
第四步:計算總費用,按要求輸出答案

3.本題調試過程碰到問題及解決辦法

(1)公式錯誤,利用devc檢查公式那一段,觀測變量發現了。公式的錯誤
(2)語法錯誤,將%lf輸入成%d,多次檢查后改正
(3)設計程序時沒有思路,在同學引導下逐漸得出結果

4.本題PTA提交列表

題目4:7-8 程序設計聯考

自從湖南農業大學、吉首大學和懷化學院組織程序設計課程聯考以后,舉辦聯考的經驗越來豐富。尤其是在使用PTA系統作為考試平台之后,聯考工作得到了很多學校的認可和支持。所以,現在參與聯考的學校比較多。為了便於區分考生,考生賬號的第一位是學校代號。1代表Hunan Agricultural University,2代表Jishou University,3代表Huaihua University,4代表Aerospace University,5代表Ocean University。 請編寫程序根據考生的賬號區分考生的學校

1.代碼


  int account,number;
  scanf("%d",&account);
  number=account/100000;
  if(number==1)
  {
    printf("Hunan Agricultural University");
  }
   else if(number==2)
  {
    printf("Jishou University");
  }
   else if(number==3)
  {
    printf("Huaihua University");
  }
   else if(number==4)
  {
    printf("Aerospace University");
  }
   else if(number==5)
  {
    printf("Ocean University");
  }
   else
  {
    printf("Other University");
  }

2.設計思路

第一步:根據題目要求定義變量account和number
第二步:利用公式求出第一位數
第三步:利用分支結構按照題目要求輸出答案

3.本題調試過程碰到問題及解決辦法

(1)題目不清楚,沒有說明"Other University“需要空格導致多次答案錯誤,嘗試后得到正確結果

4.本題PTA提交列表

二、截圖本周題目集的PTA排名。

PTA排名

1.你學會了什么?

(1)分支結構的應用
(2)利用c語言解決實際問題
(3)學會了如何使用devc的調試功能
(4)變量定義應該用單詞而不是單個字母

2.你還不會什么

(1)switch語法運用的不夠熟練
(2)無法快速找出程序的錯誤

3.你碰到什么困難,打算如何解決?

(1)編程時容易出現語法錯誤,需要檢查很久才能發現,應該多用編程軟件,提升查錯速度
(2)還需要多做題目提升自己的能力與速度
(3)對switch語法掌握不熟練,還需多加訓練,從課本,慕課,pta上進行學習


免責聲明!

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



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