作業要求:【https://edu.cnblogs.com/campus/hljkj/CS201801/homework/2293】
第三次作業 題目7-4 計算分段函數[1]
#include <stdio.h> int main(void) { double x,y; scanf(" %lf",&x); if ( x != 0 ){y = 1.0 / x; } else { y = 0;} printf("f(%.1f) = %.1f",x,y); return 0; }
解題思路
第一步:定義兩個浮點型變量x、y。
第二步:輸入一個整型變量x的數值。
第三步:判斷x與0是否相等,如果x=0則輸出y=0、如果x不等於0,則將x代入 y = 1.0 / x 並得到y的結果。
第四步:輸出最后的y值,(%.1f)代表小數點后保留一位小數,如果不足就用0補足。
流程圖


程序運行時的結果:

個人總結和遇到的問題:
在本周的學習中我學會了if、else的條件語句應用。在最開始做題的時候我會在else的后面也寫上x的取值范圍,但是在查看上課的ppt之后我才發現自己的錯誤;並且在最開始的時候無法區分else if和else兩者的區別。但是我在上網的查詢之后我才明白了他倆是在不同情況下使用的條件語句。兩者在編寫程序的時候不可以一起使用,要么使用if else、要么使用else if。但是在某種情況下兩者可以解決一道題型。
第四次作業7-2高速公路超速處罰
#include<stdio.h>
int main(void)
{
double a,b,c,d;
scanf("%lf %lf",&a,&b);
c=a-b;
d=((a/b)-1)*100;
if(c<b*0.1){
printf("OK");}
else if(c>=b*0.5){
printf("Exceed %.0f%%. License Revoked",d);
}
else{
printf("Exceed %.0f%%. Ticket 200",d);
}
return 0;
}
解題思路
第一步:先定義四個浮點型變量a,b,c,d。
第二步:輸入兩個整型變量a、b,其中a代表汽車速度;b表示汽車的最大限速度。
第三步:將a,b兩個值代入式子中得出超出最大限速度的值為c。
第四步:利用 d=((a/b)-1)*100 來計算超出最大限速度的百分比為d。
第五步:通過運用if else的語句來對得到的百分比d進行判斷,如果d低於本車最大道限速的10%,就直接在六步中輸出。如果的d達到或者超出本車最大限速度的50%,直接在第七步輸出結果。若不滿足上述兩種條件則直接跳到第八步。
第六步:輸出OK!
第七步:輸出 Exceed %.0f%%. License Revoked 。其中(%.0f)代表着輸出的超速百分比為整數,而后面的兩個百分號是為了在輸出時出現一個百分號。
第八步:輸出 Exceed %.0f%%. Ticket 200 。其中的(%.0f)也代表着超速百分比為整數,並且兩個百分號同樣是為了在輸出的結果的時候出現一個百分號。
流程圖




遇到的問題:

最開始的時候我在編寫輸出的語句的時候按照以前的方法發現在最后的結果的時候 沒有輸出%就很奇怪,我有核對了之前的代碼發現也是沒有問題。最后我嘗試着在后面又加了一個%然后結果就輸出了%、經過好久的思考我才知道第一個%是為了輸出結果用的而並非是在輸出是輸出一個%。
程序正確執行:

點評:
1:【https://www.cnblogs.com/yangzhenghui/p/9900452.html】
2:【https://www.cnblogs.com/zcybky/p/9853307.html】
3:【https://www.cnblogs.com/abcefg123/p/9898650.html】
