第四周作業


一、
題目7-1 計算分段函數[1]
1、實驗代碼

int main()
{
	float x=0,result=0;
	scanf("%f",&x);
	if(x==0)result=0;
	else result=1.0/x;
	printf("f(%.1f) = %.1f",x,result);
	return 0;
}

2、(1)設計思路:第一步:判斷應用浮點數,定義兩個浮點數x,y,其中y= result;
第二步:輸入x;
第三步:運用if else型函數,判斷x是否等於0,等於0輸出y=0.0,;不等於0輸出y=1/x。
3、流程圖:
4、本題中出現的問題:
(1)問題:1、直接定義“y=f(x)”,沒有按照題目所要求的輸出按“f(x) = result”的格式輸出
2、定義x為浮點數,“scanf”中將應該輸入“%f”打成“%d”
(2)解決:1、將”f(x)”改成題目要求的輸出格式“f(x) = result”
2、將“%d”改成“%f” (這個錯誤出現了很多次)
截圖:

題目7-2 A除以B
1、實驗代碼

int main()
{
        int A=0,B=0;
        float C=0;
        scanf("%d %d",&A,&B);
	if(-100>A||A>100||-100>B||B>100)printf("the input is error");
	else if(0<B){C=(float)A/B;
	printf("%d/%d=%.2f",A,B,C);}
	else if(B==0)printf("%d/%d=Error",A,B);
	else {C=(float)A/B;
	printf("%d/(%d)=%.2f",A,B,C);}
	return 0;
}

2、(1)設計思路:第一步:判斷是浮點數形式,定義兩個整數A,B和一個浮點數C;
第二步:輸入A,B;
第三步:運用if else型函數,判斷A,B的正負,確定浮點數C的值,如果B是正數,則輸出“C=A/B”;如果B是負數,則輸出"C=A/(B)";如果B為零,則輸出的C應為Error。C保留小數點后2位。
3、流程圖:
4、本題出現的問題:
(1)問題:else if 后面的“B=0”少打了一個“=”
(2)解決:加上一個“=”
截圖:

題目7-6 階梯電價
1、實驗代碼

int main()
{
  float A,B;
  scanf("%f",&A);
  if(A<=50&&A>0){
  B=A*0.53; 
  printf("cost = %.2f",B);}
  else if(A>50){
  B=(A-50)*(0.53+0.05)+50*0.53;
  printf("cost = %.2f",B);}
  else
  printf("Invalid Value!");
  return 0;
}

2、(1)設計思路:第一步:判斷運用浮點數,定義兩個浮點數A,B,A為用電數,B為電費;
第二步:輸入A;
第三步:運用if else型函數,判斷A的取值范圍,如果0<A<=50,輸出B=A0.53,如果A>50,輸出B=(A-50)(0.53+0.05)+50*0.53,如果A=0,輸出Invalid Value!,其中B保留兩位小數。
3、流程圖:

4、本題出現的問題:
(1)問題:限制A的范圍使用的不規范,輸出的"cost = %.2f"再DVC++中沒有出現問題,提交PTA時出現了錯誤
(2)解決:將“0<A<=50”改為“A<=50&&A>0”,輸出的“cost=%.2f”改為“cost = %.2f”。
截圖:

題目7-7 出租車計價
1、實驗代碼

int main()
{
  int C;
  float A,B;
  scanf("%f %d",&A,&C);
  if(A<=3&&C<5)
  B=10;
  else if(A<=3&&C>=5)
  B=10+C/5*2;
  else if(A>3&&A<=10&&C<5)
  B=(A-3)*2+10;
  else if(A>3&&A<=10&&C>=5)
  B=(A-3)*2+10+C/5*2;
  else if(A>10&&C<5)
  B=24+(A-10)*3;
  else if(A>10&&C>=5)
  B=24+(A-10)*3+C/5*2;
  printf("%.0f",B);
  return 0;
}

2、(1)設計思路:第一步:主要運用浮點型,定義一個整數C,兩個浮點數A,B,A是公里數,C是乘車時間,B是乘車費用;
第二步:輸入A,C;
第三步:運用if else型函數,判斷乘車公里數A與乘車時間C,分別輸出B=10,B=10+C/52,B=(A-3)2+10+C/52,B=24+(A-10)3,B=24+(A-10)3+C/52。
3、流程圖:
4、本題出現的問題:
(1)問題:當輸入A,B區間在(A>10,C>=5),輸出的B是四舍五入的數值,但是不是整數形式。
(2)解決:忘記在輸出的B的printf中限制輸出的位數,即printf(“%.0f”,B)限制輸出的位數
截圖:

二、上傳成功后coding.net項目截圖和git地址,PTA提交列表截圖:
https://coding.net/u/c289716425/p/123/git

三、點名評論的同學博客鏈接
(1)http://www.cnblogs.com/liuzehua123/p/7732027.html
(2)http://www.cnblogs.com/mayuxin/p/7735130.html
(3)http://www.cnblogs.com/hezongyan/p/7726382.html
四、本周所學內容、遇到的問題以及解決方法:
本周學習了define和一些新的符號如:++,--,
遇到的問題:經常忘記輸入scanf括號里的&,在表示"x=x"時經常忘記用“==”,結尾的輸出浮點數經常忘記限制保留小數位數,
解決辦法:需要繼續練習編寫代碼和記住結構
五、學習表格與折線圖
學習表格:
折線圖:


免責聲明!

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



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