C語言的第二次作業


一.PTA實驗作業

題目1. 計算分段函數

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

1.本題代碼

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

2.設計思路

  • 第一步:定義兩個浮點型分別代表x,y
  • 第二步:利用if語句判斷x所屬於的范圍,從而判斷接下來進行的語句
  • 第三步:利用數學函數進行運算
  • 第四步:根據題目要求,輸出保留兩位小數的結果

3.本題調試過程中碰到的問題以及解決方案

4.本題PTA實驗結果展示

題目2.7-4 輸出三角形面積和周長

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

1.本題代碼

#include<stdio.h>
#include<math.h>
int main (void)

{
	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.00;
        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");
}
    return 0;
}

2.設計思路

  • 第一步:定義三個整型變量代表三角形的三條邊,定義兩個浮點型變量代表三角形的面積和周長
  • 第二步:判斷三條邊是否可以構成三角形,從而判斷接下來進行的語句
  • 第三步:利用公式計算出周長和面積
  • 第四步:按照題目要求保留兩位小數輸出結果

3.本題調試過程中碰到的問題以及解決方案

(1)答案錯誤

  • 錯誤:題目要求保留兩位小數,在計算面積時語句“s=(a+b+c)/2.00”,中的2沒有增加小數位數導致結果輸出為整數不符合題目輸出答案要求。
  • 解決方案:通過問同學,以及自己的多次調試,翻閱課本,找到錯誤點

4.本題PTA實驗結果展示

題目3.7-6 出租車計價

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

1.本題代碼

#include<stdio.h>
int main(void)
{
   int time,C;
   double mil,cost1,cost2,cost;
   scanf("%lf%d",&mil,&time);
   if(0 <= mil&&mil <= 3){
       cost1=10;
}
   else if (3<mil&&mil<=10){ 
	   cost1 = (mil-3) * 2+10;
}
   else if(10<mil){
	   cost1=24+(mil-10)*3;
}
   if(0<=time&&time<5){
	cost2=0;
} 
   else {
	cost2=(time/5)*2;
}

    cost=cost1+cost2;
    C=(int)(cost+0.5) ;
    printf("%d",C);
 
    return 0;
	
}

2.設計思路

  • 第一步:定義六個變量 mil,cost1,cost2,cost; time,C分別用於存放路程,行駛時的費用,停車時的費用,總費用,四舍五入后的總費用
  • 第二步:輸入里程數和停留的時間
  • 第三步:利用if else if語句對mil 和 time的范圍進行判斷接下來進行的語句,
    如果mil小於3,則cost1=10,
    如果mil大於3小於10,則cost1= (mil-3) * 2+10
    如果mil大於10,則 cost1=24+(mil-10)*3
    如果time小於5,則cost2=0
    如果time大於5,則cost2=(time/5)*2
  • 第四步:cost=cost1+cost2
  • 第五步:對cost進行四舍五入得到C
  • 第六步:輸出C

3.本題調試過程中碰到的問題以及解決方案

(1)部分正確

  • 錯誤:對題目理解有誤,以為“超起步里程后10公里內,每公里2元”是指行駛13公里后
  • 解決方案:請教同學,理解題意

(2)答案錯誤

  • 錯誤:沒有使用四舍五入語句,不會使用四舍五入語句
  • 解決方案:上網百度

4.本題PTA實驗結果展示

題目2.7-8 程序設計聯考

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

1.本題代碼


#include<stdio.h>
int main (void)
{
	int F,N;
	scanf("%d",&N);

	F=N/100000;
	switch(F) {
	  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.設計思路

  • 第一步:定義兩個整型變量N,F分別用於儲存學號和學號的首位數
  • 第二步:利用整型數除以整型得到整型的原理,用N/100000得到學號的首位數即F
  • 第三步:使用用switch語句,當F=1輸出“Hunan Agricultural University”,
    當F=2時輸出“Jishou University
    當F=3時輸出“Huaihua University
    當F=4時輸出Aerospace University
    當F=5時輸出Ocean University
  • 第四步:如果都沒有,就輸出Other University

3.本題調試過程中碰到的問題以及解決方案

(1)switch語句使用錯誤

4.本題PTA實驗結果展示

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

三,本周的學習總結

1.你學會了什么?

  • 1,整型的輸出格式控制說明%md,指定了數據的輸出寬度為m(包括符號位),若輸入的實際位數小於m,則左端補空格,若大於m,則按實際位數輸出,實型數據的輸出格式控制說明%m.nf,指定了輸出浮點型數據保留n位小數。
  • 2.for循環語句:for(表達式1;表達式2;表達式3)。
  • 3.多分支結構else-if語句。
  • 4.字符型變量在定義時用類型名char。
  • 5.switch語句中如果不使用break,當表達式的值與之相匹配時,不但執行相應的語句段,還按序執行后面的所有語句段。

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

  • 1.switch語句和其他語句的配合使用,如與if語句。
  • 2.不會使用dev的調試,或者說還不習慣自我調適尋找到問題。

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

  • 1.習慣性得漏掉&符號,直到程序運行顯示無法運行時才反應過來

  • 解決方法:在程序運行前再檢查一下

  • 2.在做到一些熟悉的題目時會找課本里的例題進行改變,如果沒有看書,會漏掉一些細節導致編程錯誤

  • 解決方案:增加相應題目的練習量,逐漸擺脫課本


免責聲明!

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



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