要求二:
題目7-1 高速公路超速處罰
1,實驗代碼
#include <stdio.h>
int main (){
int a,b;
double c;
scanf("%d %d",&a,&b);
c=(a-b)*100.0/b;
if (c<10)
printf("OK\n",c);
else if (c<50)
printf("Exceed %.0f%%. Ticket 200\n",c);
else
printf("Exceed %.0f%%. License Revoked\n",c);
return 0;
}
2,,設計思路
<1>第一步:要考慮c的定義,即超過限速的百分比,用速度減去限速再除以限速。
第二步:會有出現小數的情況,要用到四舍五入。
第三步:多種情況,熟知的if else語句,注意限速中c乘以了100.0,故if中的判斷為<10,<50。
<2>流程圖:
3,本題調試過程中遇到的問題和解決方法。
錯誤截圖:
遇到的問題:寫完后發現不了錯誤,四舍五入也用到了,后兩個要顯示百分比的一直是百分之零。
解決方法:請教了同學,才發現是輸出語句printf沒有定義完全,在“\n”后少寫了c。
pta提交列表:
題目7-2 計算油費
1,實驗代碼
#include <stdio.h>
int main(){
int a,b;
char c;
double d;
scanf("%d %d %c",&a,&b,&c);
if (b==93)
{if (c=='m'){
d=7.44*(0.95)*a;
printf("%.2f\n",d);}
else {
d=7.44*(0.97)*a;
printf("%.2f\n",d);}}
else if (b==90)
{if (c=='m')
{d=6.95*(0.95)*a;
printf("%.2f\n",d);}
else{
d=6.95*(0.97)*a;
printf("%.2f\n",d);}}
else{
if(c=='m')
{d=7.93*(0.95)*a;
printf("%.2f\n",d);}
else{
d=7.93*(0.97)*a;
printf("%.2f\n",d);}}
return 0;
}
2,設計思路
<1>第一步:題目涉及到字符問題,可以用char定義,並且在下面的if else語句中用單引號定義字符。
第二步:又是六種情況,即每種油有兩種折扣方式,3*2=6。
第三步:在每個if ,else if,else中又有兩個分類,即又要用到if,else。雖說麻煩不少,但是一步步寫,還是可以寫對的。
<2>流程圖:
3,本題調試過程中遇到的問題和解決方法。
錯誤截圖:
遇到的問題:我也不知道是怎么不對,感覺是定義變量的時候出了問題,無法解決,就去請教了同學。
解決方法:題目意思沒理解好,以為是三個整數,卻沒發現有一個字符,題目中保留兩位小數的,用到double型沒錯。直到解決了問題后,才寫了設計思路。
pta提交列表:
題目7-3 比較大小
1,實驗代碼
#include <stdio.h>
int main(){
int a,b,c,d;
scanf("%d %d %d",&a,&b,&c);
if (a>b){
d=a;
a=b;
b=d;}
if (a>c){
d=a;
a=c;
c=d;}
if (b>c){
d=b;
b=c;
c=d;}
printf("%d->%d->%d",a,b,c);
return 0;
}
2,設計思路
<1>第一步:三個數比較大小,需定義第四個變量,用來置換大小數。
第二步:分(a>b),(a>c),(b>c)三種情況進行數的大小置換,保證從小到大是a,b,c。
<2>流程圖:
3,本題調試過程中遇到的問題和解決方法。
錯誤截圖:本題題目上課時講過,基本沒有錯誤,無截圖。
只有一些不仔細的錯誤,比如說有一個;沒打,導致了部分正確。
pta截圖:
題目7-4 兩個數的簡單計算器 (必須使用switch結構實現)
1,實驗代碼
#include<stdio.h>
int main()
{
int A,B;
char ch;
scanf("%d %c %d",&A,&ch,&B);
switch(ch){
case'+':printf("%d",A+B);break;
case'-':printf("%d",A-B);break;
case'*':printf("%d",A*B);break;
case'/':printf("%d",A/B);break;
case'%':printf("%d",A%B);break;
default:printf("ERROR");}
return 0;
}
2,設計思路
<1>第一步:又有字符的定義,用到char,在scanf中用%c定義。
第二步:必須是switch的語句,有固定的格式,套用就可以了,case加運算符,結尾處用到break。不符合題意的用default進行概括,輸出ERROR。
<2>流程圖:
3,本題調試過程中遇到的問題和解決方法。
錯誤截圖:
遇到的問題:無論怎么寫,輸出的結果全是ERROR。而且程序再編譯時沒有提示錯誤。
解決方法:字符定義的問題,沒有注意到scanf中的是%c,改過來就好了。
pta截圖:
要求三:
coding.net截圖:
git 地址:https://git.coding.net/WP2017024114/test.git
要求四:
個人總結
本周對if else的語句的編寫有了更熟練的掌握,知道了switch的語句編寫,字符型數據用char定義,在scanf中用%c定義數據。對C語言這門課程有了一點興趣,喜歡那種一個程序再自己的手中編譯運行,然后輸入數字,執行成功的感覺。
難點就是感覺一個陌生的程序第一次寫得時候永遠是錯的,只有多練習的即便才慢慢發現程序究竟是怎么運行的,才會寫對。
上課形式沒有什么意見,邊教邊練,是很好的教學方式了。
要求五:
點評的作業:
趙升旗:http://www.cnblogs.com/boke2017boke/p/7788452.html
王佳樂:http://www.cnblogs.com/wjl1124/p/7783547.html
何宗彥:http://www.cnblogs.com/hezongyan/p/7783360.html
表格和折線圖: