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


一、PTA實驗作業。

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

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

注:可在頭文件中包含math.h,並調用sqrt函數求平方根,調用pow函數求冪。

1.實驗代碼

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

2.設計思路

  • (1)定義兩個雙精確浮點型的變量x,result。

  • (2)輸入一個雙精確浮點型變量x。

  • (3)如果x>=0,則'result=pow(x,0.5)';否則,則'result=pow(x+1,2)+2*pow(x,1)+pow(x,-1)'。其中pow()是數學函數。

  • (4)輸出f(x)=result的值,其中x,f(x)均保留兩位小數。

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

  • 碰到的問題:
    乘號沒用'*'表示,導致編譯錯誤。
    空格依舊忘記加,格式錯誤。
    定義變量是用了f(x),導致了編譯錯誤。

  • 解決辦法:將計算式中的“2x”改為“2*x”,在計算機編程中只寫"2x",計算機不能識別;將題目中的輸出結果復制粘貼,然后改成要輸出的東西。
    將其改為result。

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

2.設計思路

  • (1)定義三個整型變量a,b,c,三個雙浮點型變量area,perimeter,s,其中a,b,c,代表邊長,area放面積,perimeter放周長,s放(a+b+c)/2.0的值。

  • (2)輸入整型數據a,b,c。

  • (3)如果 a+b>c且a+c>b且b+c>a,則計算's=(a+b+c)/2.0','area=sqrt(s(s-a)(s-b)*(s-c))','perimeter=a+b+c'。

  • (4)輸出此時的面積area,周長perimeter。且均保留兩位小數。

  • (5)否則,輸出These sides do not correspond to a valid triangle。

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

  • 碰到的問題:
    未加‘&’使段錯誤,是程序停止運行。
    空格未正確添加。

  • 解決辦法:在scanf()語法中,在輸入的變量前應加“&”,以后輸出結果直接復制之后再在其基礎上修改。

4.本題PTA實驗結果

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

本題要求根據某城市普通出租車收費標准編寫程序進行車費計算。具體標准如下:

  • 起步里程為3公里,起步費10元;

  • 超起步里程后10公里內,每公里2元;

  • 超過10公里以上的部分加收50%的回空補貼費,即每公里3元;

  • 營運過程中,因路阻及乘客要求臨時停車的,按每5分鍾2元計收(不足5分鍾則不收費)。

1.實驗代碼

        int time=0;
	double money,s;
	scanf("%lf%d",&s,&time);
	if(s<=3){
		money=time/5*2+10;
	}
	else if(s>3&&s<=10){
		money=time/5*2+10+2*(s-3);
	}
	else{
		money=time/5*2+10+14+(s-10)*3;
	}
	printf("%.0f",money);

2.設計思路

  • (1)定義一個整型變量time,定義兩個雙精確浮點變量money,s。s放路程,money放錢。

  • (2)輸入一個整型變量time,輸入一個雙精確浮點變量s

  • (3)如果s<=3,則'money=time/5*2+10'。

  • (4)如果s>3且s<=10,則'money=time/52+10+2(s-3)'。

  • (5)否則,'money=time/52+10+14+(s-10)3'。

  • (6)輸出money,此時保留整數,且四舍五入。

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

  • 碰到的問題:
    未加‘&’使段錯誤。
    對各個計算式的理解錯誤導致答案錯誤。

  • 解決辦法:在輸入的變量前應加“&”。我需要牢記scanf()語法。將計算表達式改正。

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,first_account;
	scanf("%d",&account);
	first_account=account/100000;
	switch(first_account){
		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.設計思路

  • (1)定義兩個整型變量account,first_account。account放考生賬號,first_account放考生賬號的第一位數字。

  • (2)輸入一個正六位數account。

  • (3)計算考生賬號第一位'first_account=account/100000'。

  • (4)如果值為1,則輸出Hunan Agricultural University。

  • (5)如果值為2,則輸出Jishou University。

  • (6)如果值為3,則輸出Huaihua University。

  • (7)如果值為4,則輸出Aerospace University。

  • (8)如果值為5,則輸出Ocean University。

  • (9)如果值為其他,則輸出Other University。

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

  • 碰到的問題:
    沒加空格
    最后的其他用了case other:所以錯了。

  • 解決辦法:將題目中的輸出結果復制粘貼,然后改成要輸出的東西。看書后知道應該用default。

4.本題PTA實驗結果

二、截圖本周題目集的PTA提交列表及最后排名。

1.PTA提交列表









2.PTA排名

三、本周學習總結

1.你學會了什么?

switch語法的基本運用,if的嵌套和if多分支結構的運用。for語法正在探索中。

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

  • for語法和switch語法的結合運用還不怎么會。for語法還不怎么會

  • 空格加的地方不怎么會,pta上總是因為空格沒加,或者加的地方不對而導致錯誤。

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

  • scanf()語法記憶的不行,老是忘記給變量前加“&”;符號變量有時候總把“%c”寫成“%d”,或是其他的。

  • 我想我會先認真再把書本翻一下,然后加深一下自己對模糊的語法(例如,scanf()語句);我會去求那些編程大佬的幫助,問他們是如何記住這些東西的,當然也會去詢問老師的。


免責聲明!

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



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