https://edu.cnblogs.com/campus/hljkj/CS201802/homework/2360
PTA作業
完成第11周、第12周和第13周的8次pta作業,將PTA作業中部分題目的設計思路和遇到的問題及解決辦法總結在博客中。目前完成的作業中需要總結的題目是:
- 第11周的第6次作業(循環)和第7次作業(循環)中任選一題(15經驗值)
- 第12周的第8次作業(循環)和第9次作業(循環)中任選一題(15經驗值)
- 第13周的第10次作業(循環)和第11次作業(循環)中任選一題(15經驗值)
博客的具體書寫內容和格式
從PTA作業選取的題目,按照下述樣例進行總結,包括代碼、文字描述解題思路和流程、錯誤調試和解決辦法。4部分都必須寫,缺任何一項倒扣該項所有分數!
舉例:
第三次作業 題目3-1 高速公路超速處罰
第七次作業
7-4 查詢水果價格 (15 分)
給定四種水果,分別是蘋果(apple)、梨(pear)、桔子(orange)、葡萄(grape),單價分別對應為3.00元/公斤、2.50元/公斤、4.10元/公斤、10.20元/公斤。
首先在屏幕上顯示以下菜單:
[1] apple
[2] pear
[3] orange
[4] grape
[0] exit
用戶可以輸入編號1~4查詢對應水果的單價。當連續查詢次數超過5次時,程序應自動退出查詢;不到5次而用戶輸入0即退出;輸入其他編號,顯示價格為0。
輸入格式:
輸入在一行中給出用戶連續輸入的若干個編號。
輸出格式:
首先在屏幕上顯示菜單。然后對應用戶的每個輸入,在一行中按格式“price = 價格”輸出查詢結果,其中價格保留兩位小數。當用戶連續查詢次數超過5次、或主動輸入0時,程序結束。
輸入樣例1:
3 -1 0 2
輸出樣例1:
[1] apple
[2] pear
[3] orange
[4] grape
[0] exit
price = 4.10
price = 0.00
輸入樣例2:
1 2 3 3 4 4 5 6 7 8
輸出樣例2:
[1] apple
[2] pear
[3] orange
[4] grape
[0] exit
price = 3.00
price = 2.50
price = 4.10
price = 4.10
price = 10.20
#include<stdio.h> int main(void) { int i,a,sum; printf("[1] apple\n[2] pear\n[3] orange\n[4] grape\n[0] exit\n"); for(i=0;i<5;i++){ scanf("%d",&a); if(a == 0){ return 0; } else{ sum++; switch(a){ case 1:printf("price = 3.00\n");break; case 2:printf("price = 2.50\n");break; case 3:printf("price = 4.10\n");break; case 4:printf("price = 10.20\n");break; default:printf("price = 0.00\n"); } } if(sum == 5){ return 0; } } }
第八次作業
7-1 求奇數和 (15 分)
本題要求計算給定的一系列正整數中奇數的和。
輸入格式:
輸入在一行中給出一系列正整數,其間以空格分隔。當讀到零或負整數時,表示輸入結束,該數字不要處理。
輸出格式:
在一行中輸出正整數序列中奇數的和。
輸入樣例:
8 7 4 3 70 5 6 101 -1
輸出樣例:
116
#include<stdio.h> int main() { int num,x; for(;;){ scanf("%d",&x); if(x<=0){ break; } if(x%2!=0){ num=num+x; } } printf("%d",num); return 0; }
第十次作業
7-1 統計素數並求和 (20 分)
本題要求統計給定整數M和N區間內素數的個數並對它們求和。
輸入格式:
輸入在一行中給出兩個正整數M和N(1≤M≤N≤500)。
輸出格式:
在一行中順序輸出M和N區間內素數的個數以及它們的和,數字間以空格分隔。
輸入樣例:
10 31
輸出樣例:
7 143
#include<stdio.h> int main() { int M, N, i, n = 0, x, y = 0; scanf("%d %d",&M, &N); for(i = M; i <= N; i++) { for(x = 2; x < pow(i, 0.5); x++) { if(i % x == 0) { break; } } if(x > pow(i,0.5) && i != 1)x { n++; y += i; } } printf("%d %d",n,y); return 0; }
1.實驗代碼(2經驗值)
注意:將代碼貼在此處,必須使用插入代碼的方式!!禁止將代碼直接粘貼到博客上,否則對應題的15經驗值無法獲得,即為0經驗值。
代碼要求:要求使用cnblogs代碼控件。凡粘貼IDE中的代碼截圖,或者貼文字而沒有關鍵字高亮或彩色的,則對應題的15經驗值無法獲得,即為0經驗值。。參考其他學校博客https://www.cnblogs.com/ranh941/p/7545915.html、http://www.cnblogs.com/huangxman/p/5871201.html
2 解題思路(10經驗值)
(1)主要描述題目算法(3經驗值)。可以用文字描述(不僅限於文字描述,偽代碼等方式也可以),如:
第一步:###
第二步:###
第七次作業
第一步:閱讀題目按照題目要求先定義變量,閱讀題目了之后發現需要用到for循環來解決這個問題,並且還要運用switch-break,因為超過五次之后跳出程序,所以要用此程序。
第二步:理解題目了之后要看要求,這是一個復合的程序用一種是不能解決問題的,根據他的要求他需要一個問價系統所以要用到if語句來判斷是否是這種水果,之后再判斷是哪種水果的價錢相對應。
第八次作業
第一步:閱讀題目要求按照題目要求我們知道本題要求計算給定的一系列正整數中奇數的和,所以要先判斷奇數,用if語句來判斷。
第二步:再求和,用for循環來求和。
第十次作業
第一步:閱讀題目按照題目要求來思考框架及結構,根據題目我們知道需要判斷素數,而素數是只有1和他本身兩個因數的自然數,所以用if語句來判斷此程序,之后再用for循環來求和。、
第二步:用for循環來求和之后並在要求區間內,之后用printf輸出結果和。
(2)流程圖(7經驗值)
樣圖如下。
第七次作業
第八次作業
第十次作業
3.本題調試過程碰到問題及解決辦法(3經驗值)
第七次作業
第八次作業
第十次作業
注意1:有錯誤提示的截圖。
注意2:若無錯誤提示截圖,請提供程序運行結果截圖。(當然存在一次就過的同學,合情合理)
注意3:必須有編譯器設置斷點、單步調試的界面截圖。
注意4:注意1和注意2必須滿足其中任意一項,注意3必須滿足,若無截圖,則對應題的15經驗值無法獲得,即為0經驗值。
注意5:務必請把你遇到的問題是什么以及解決方法描述清楚。若助教或教師無法理解,則對應題的15經驗值無法獲得,即為0經驗值。
要求三(共10經驗值)
個人總結
(1)本周你學習哪些內容(不限於課上)?你有哪些收獲?(5經驗值)
本周學習函數的定義,庫函數:由c語言系統提供定義,如scanf(),printf()等函數。
自定義函數:需要用戶自己定義,如求和函數sumb2e()。
通過學習這個函數我們更能解決一些問題了,比如可以限定范圍來解決函數問題。
(2)本周所學內容中你覺得哪些地方是難點?對此你做了哪些措施去克服這些困難?(5經驗值)
函數聲明是我們需要注意的重點,記得要在開頭或者結尾把循環程序打進去,不要打在主程序里。
並且要多多練習代碼的熟練度,這樣才能讓我們更加熟練掌握一些函數題目。
要求四(共10經驗值)
互評和學習進度
1、點評3個同學的本周作業(在作業中給出被點評同學博客的鏈接),並邀請3名同學點評你的作業,無點評作業(你的作業未被3人點評)/或者沒有回復同學或老師的點評都倒扣該題分數。(5經驗值)。
http://www.cnblogs.com/mayijing/ 馬一婧
http://www.cnblogs.com/freedomjdp/ 鞠大鵬
http://www.cnblogs.com/abcdsjjs/ 時碩童
2、請用表格和折線圖呈現你本周(10/24 12:00~10/7 12:00)的累積代碼行數和時間、累積博客字數和時間(5經驗值),表格和折線圖請參考https://www.cnblogs.com/ranh941/p/7594640.html。
請注意,折線圖體現的是累積代碼行數和累積博客字數,例如:第1周代碼行數為100、博客字數1000,第2周代碼行數為200、博客字數為500,則對應的折線圖中應該有兩個點,折線圖橫坐標為時間(第1周、第2周),縱坐標為累積代碼行數和博客字數(100和300或者1000和1500)。允許兩個折線圖,當然雙y軸折線圖更好。