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


一、PTA實驗作業.

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

本題目要求計算下列分段函數f(x)的值:
注:可在頭文件中包含math.h,並調用sqrt函數求平方根,調用pow函數求冪。

1.代碼

  double x,result;

  scanf("%lf",&x);

  if(x>=0) result=sqrt(x);

  else result=pow((x+1),2)+2*x+1/x;

  printf("f(%.2f) = %.2f",x,result);

  return 0;

2.設計思路

-(1)調用函數。定義兩個雙精度變量x和result。
-(2)輸入x。
-(3)如果x>=0,result=sqrt(x)。否則,result=pow((x+1),2)+2*x+1/x。
-(4)輸出f(x)=result的值。x和result保留兩位小數。

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

無問題。

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 area,perimeter,s;

  scanf("%d%d%d",&a,&b,&c);

  if(a+b>c&&a+c>b&&b+c>a) {

      s=(a+b+c)*1.0/2;

      area=sqrt(s*(s-a)*(s-b)*(s-c));

      perimeter=1.0*(a+b+c);

      printf("area = %.2f; perimeter = %.2f",area,perimeter);

  }

  else printf("These sides do not correspond to a valid triangle");

  return 0;

2.設計思路

-(1)定義3個a,b,c代表邊,定義3個整型變量area,perimeters丶s代表面積丶周長和s.
-(2)輸入邊長a,b,c.
-(3)如果這三邊能組成三角形,計算s=(a+b+c)1.0/2; 面積area=sqrt(s(s-a)(s-b)(s-c)); 周長perimeter=1.0*(a+b+c);. 然后輸出面積和周長,保留兩位小數.
-(4)如果這三邊不能組成三角形,輸出"These sides do not correspond to a valid triangle"

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

一開始將s定義為整型變量導致答案錯誤,后來想到s可能為小數於是改成定義為浮點型變量.

4.本題PTA實驗結果

題目3.出租車計價

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

1.代碼

#include<stdio.h>
int main()
{
  int time;
  double mileage,fee;
  scanf("%lf %d",&mileage,&time);
  if(mileage<=3) fee=10;
  else if(mileage>3&&mileage<=10) fee=10+(mileage-3)*2;
  else fee=24+(mileage-10)*3;
  fee=fee+(time/5)*2;
  printf("%.0f",fee);
  return 0;
}

2.設計思路

-(1)定義整型變量time表示等待時間.定義浮點型變量mileage和fee表示路程和費用.
-(2)輸入路程和時間.
-(3)先判斷路程:如果路程mileage<=3(km),費用fee=10; 如果路程>3且<=10,費用fee=10+(mileage-3)2; 如果路程>10,費用fee=24+(mileage-10)3.
-(4)在路程產生的費用上加上停車產生的費用fee=fee+(time/5)*2.
-(5)輸出費用fee.

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

無問題.

4.本題PTA實驗結果

題目4.程序設計聯考

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

1.代碼

#include<stdio.h>
int main()
{
  int account;
  scanf("%d",&account);
  switch(account/100000){
    case 1:printf("Hunan Agricultural University"); break;
    case 2:printf("Jishou University"); break;
    case 3:printf("Huaihua University"); break;
    case 4:printf("Aerospace University"); break;
    case 5:printf("Ocean University"); break;
    default:printf("Other University"); break;
  }
  return 0;
}

2.設計思路

-(1)定義整型變量account表示學生賬號.
-(2)輸入學生賬號.
-(3)用switch語法判斷account/1000000的值,即判斷學生賬號的首位.值為1,輸出"Hunan Agricultural University"(並用break結束語句);值為2,輸出"Jishou University";值為3,輸出"Huaihua University";值為4,輸出"Aerospace University";值為5,輸出"Ocean University";值為其他數,輸出"Other University".

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

無問題.

4.本題PTA實驗結果

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

三、本周學習總結

1.你學會了什么?

-學會了條件語句的用法,知道了switch語法和if-else語法的異同點及各自的優點;知道了什么是字符型還有字符型變量的輸入輸出,知道了判斷字符要加' ';

2.本周的內容,你還不會什么?

-基本理解.

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

-不從題目上復制輸出格式不時會出現答案錯誤.寫代碼還不夠快,需要多練習.


免責聲明!

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



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