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


一、PTA實驗作業

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

1.實驗代碼

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

2 設計思路

  • 第一步:定義兩個實數變量。
  • 第二步:輸入x。
  • 第三步:判斷x<0則y=pow(x+1,2))+2*x+1/x。
    否則y=sqrt(x)。
  • 第四步:輸出y即f(x)。

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

多出入了一個printf的代碼,沒有按照題目的要求來做。

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=((double)a+b+c)/2;
    	perimeter=a+b+c;
    	area=sqrt(s*(s-a)*(s-b)*(s-c));
		printf("area = %.2f; perimeter = %.2f",area,perimeter);}
	else {
		printf("These sides do not correspond to a valid triangle");
	}
	return 0;

2 設計思路

  • 第一步:定義整數型變量a,b,c為邊長,定義實數變量area,perimeter,s為面積,周長和一個數據中轉。
  • 第二步:輸入邊長a,b,c。
  • 第三步:根據三角形定義,任意兩邊之和大於第三邊的定理判斷能否成為三角形。
  • 第四步:計算s=((double)a+b+c)/2,perimeter=a+b+c,area=sqrt(s(s-a)(s-b)*(s-c))。
  • 第五步:輸出各項數據。

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

在調試中一直出現格式錯誤,后面找了出來解決了問題.

4.本題PTA提交列表

3.出租車計價

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

1.實驗代碼

double distance,wait,price;
 	int x;
 	scanf("%lf%lf",&distance,&wait);
 	if(distance<=3){
 		x=wait/5;
 		price=10+2*x;}
	else if(distance>3&&distance<=10){
		x=wait/5;
		price=10+(distance-3)*2+x*2;}
	else{
		x=wait/5;
		price=24+(distance-10)*3+x*2;
	}
	printf("%.0f",price);
	return 0;	 	

2 設計思路

  • 第一步:定義實數變量distance,wait,price,定義整型變量中轉數x。
  • 第二步:輸入distance,wait。
  • 第三步:判斷distance<=3,若是x=wait/5,price=10+2x;
    要是3<distance<=10,則x=wait/5,price=10+(distance-3)
    2+x2;
    否則x=wait/5,price=24+(distance-10)
    3+x*2。
  • 第四步:輸出price。

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

本題較為順利,沒有什么錯誤。

4.本題PTA提交列表

4.程序設計聯考

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

1.實驗代碼

    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;

2 設計思路

  • 第一步:定義整型變量account。
  • 第二步:輸入變量account。
  • 第三步:運用switch語句,關系式為account/100000.
  • 第四步:通過選擇輸出相應的學校。

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

不認真看,學校名稱寫錯。

4.本題PTA提交列表

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

三、本周學習總結

1.你學會了什么?

在這一周中我學會了switch語句的用法,還懂得了if-else的嵌套語法,這是分支結構的兩個大語句。還學會了字型符變量,這是一種新變量。

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

本周的switch語句還是比較陌生,字符型變量也有些混亂,但我相信在多過兩星期,多打一些代碼就能夠解決這一些困難。

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

先自己去解決,要是實在解決不了的話,通過網上查詢或者問老師同學,在解決問題之后,更應鞏固這一種知識,我覺得應該多多參加類似ACM,網絡安全協會類似的社團,多多了解關於計算機這一方面的知識。


免責聲明!

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



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