一,PTA實驗作業
題目1
7-1 求組合數 ( 15 分 )
本題要求編寫程序,根據公式Cnm=m!(n−m)!n!算出從n個不同元素中取出m個元素(m≤n)的組合數。
建議定義和調用函數fact(n)
計算n!
,其中n
的類型是int
,函數類型是double
。
1.提交列表
2.設計思路
將所需元素輸入 ,再調用函數fact()即可。
3.調試過程
當m==n/2時,結果錯誤。沒注意定義成了int型 將其改為double類型即可
題目2
7-3 求冪之和 ( 15 分 )
本題要求編寫程序,計算sum=21+22+23+⋯+2n。可以調用pow函數求冪。
1.提交列表
2.設計思路
調用pow函數,再進行累加求和。
3.調試過程
第一次因為在輸出時忘記加空格,所以導致格式錯誤。第二次加上空格就正確了。
題目三
7-10 判斷素數 ( 10 分 )
本題的目標很簡單,就是判斷一個給定的正整數是否素數。
1.提交列表
2.設計思路
3.調試過程
一遍過。
二,同學代碼結對互評。
題目
7-8 求n以內最大的k個素數以及它們的和 ( 20 分 )
本題要求計算並輸出不超過n的最大的k個素數以及它們的和。
許日禎同學的代碼
我的代碼
啊,我的代碼真是長到自己都不知道怎么打出來的,無可厚非,小日同學的代碼更簡短更清晰,完美勝出。但是,我會用數組啊,不過貌似在這題上不太適合。以后會多加注意審題,理清思路。
三,PTA排名
四,本周學習總結
函數是一個完成特定工作的獨立程序模塊,由C語言系統提供定義,編程時只要直接調用即可,不同函數完成的是不同的功能,但它們都有一個共同點----實現一個計算,並可以得到一個明確的計算結果。函數首部后面不能加分號,他和函數體一起構成完整的函數定義。實參和形參一一對應,數量應相同,順序應一致。return語句只能返回一個值。函數聲明是一條C語句,而函數定義時的函數部首不是語句,后面不能跟分號。
這次PTA的第六題還是不會。
一,PTA實驗作業
題目1
7-2 求最大值及其下標(20 分)
本題要求編寫程序,找出給定的n個數中的最大值及其對應的最小下標(下標從0開始)。
1.提交列表
2.設計思路
把數字存入數組,再首尾交換
3,調試過程
一遍過。
題目2
7-6 冒泡法排序(20 分)
將N個整數按從小到大排序的冒泡排序法是這樣工作的:從頭到尾比較相鄰兩個元素,如果前面的元素大於其緊隨的后面元素,則交換它們。通過一遍掃描,則最后一個元素必定是最大的元素。然后用同樣的方法對前N−1個元素進行第二遍掃描。依此類推,最后只需處理兩個元素,就完成了對N個數的排序。
本題要求對任意給定的K(<N),輸出掃描完第K遍后的中間結果數列。
1.提交列表
2.設計思路
利用數組存入數字,再循環判斷,依次比較,再輸出。
3,調試過程
第一次編譯錯誤是由於語句結束忘記加分號,第二次部分正確,,,至今原因不明,,,啊,難過
題目3
7-4 查找整數(10 分)
本題要求從輸入的N個整數中查找給定的X。如果找到,輸出X的位置(從0開始數);如果沒有找到,輸出“Not Found”。
1.提交列表
2.設計思路
定義一個數組a,將整數存入數組中,再給定數字b,將數組與數字進行比較看是否相等,循環至結束
3.調試過程
一遍過。
二,同學代碼互評。
題目
7-13 找鞍點(20 分)
一個矩陣元素的“鞍點”是指該位置上的元素值在該行上最大、在該列上最小。
本題要求編寫程序,求一個給定的n階方陣的鞍點。
我的代碼
雷慧同學的代碼
啊,沒有對比就沒有傷害,看看雷慧妹子的代碼,比我的短,思路也清晰,我的沒有將其匯總,比較凌亂導致部分正確,頭腦也好亂,嗯,的確收獲很多打代碼的的技能,下次打代碼前一定要畫流程圖。
三,PTA排名
四,學習總結
不能分配常量大小為0的數組。
訪問數組要用下標訪問,且下標要從0開始。
數組在內存中連續存放。
數組的數組名相當於數組首元素的地址。
sizeof(數組名),數組名表示整個數組,求的是整個數組的大小;&數組名,數組名表示整個數組,取出來的是數組的地址。除此之外,所有的數組名均表示首元素的地址,地址均為四個字節。
二維數組的表示:int arr[ ] [4] (對); int arr[3] [ ] (錯)。
二維數組的理解:int arr[3] [4]可以理解為三個一維數組,每個一維數組中有四個元素。
若 int *p = arr , 則 i [arr] = i ; arr [i] = i ; *(i+arr) = i ; * (p+i) = i ; p [i] = i 這些表示法均成立。
一維數組的大小計算:int arr [10]={0}; int sz =sizeof(arr) / sizeof (arr[0])
本次PTA作業第7,9題還不會。
一.PTA實驗作業
題目1
7-7 計算階乘和
對於給定的正整數N,需要你計算 S=1!+2!+3!+...+N!。
1.提交列表
2.設計思路
每輪循環求i的階乘,加給sum,再將i+1,進行下一輪循環,當i大於N時,循環結束。
3.本題調試
第一次提交審錯題,第二次就OK了,第三次大概是忘了交過又交了一遍。
題目2.
7-19 求簡單交錯序列前N項和
本題要求編寫程序,計算序列 1 - 1/4 + 1/7 - 1/10 + ... 的前N項之和。
1.提交列表
2.設計思路
定義flag,denominator為分子和分母,i為循環執行次數,item為每次循環時分子除以分母的值,每輪循環將item加給sum。每輪循環將item加給sum題目中每隔一次循環item變號,所以每次循環時將flag變號,同時將i加一,直到i到大於n,停止循環,輸出sum的值。
3.調試過程
定義a為已循環次數,但在每次循環夠沒有將其加一,導致程序進入死循環。
題目3.
1.7-5 找出最小值
本題要求編寫程序,找出給定一系列整數中的最小值。
1.提交列表
2.設計思路。
輸入n為循環次數,先輸入一個整數,讓它為最小值,之后每輪循環都輸入一個整數,將這個整數與當前最小值比較,若小於最小值,則將其賦值給最小值。
3.調試過程
定義了I,后面又使用了i,導致編譯錯誤。
二.同學代碼結對互評。
PTA40題
我的代碼
雷慧同學的代碼
此題雖然我不懂非零返回是個什么鬼錯誤,總感覺自己的沒錯,但是經過雷慧同學的指導,我知道本題用子函數加循環體做更合適。
雷慧同學的代碼設計更清晰簡單。
三.截圖本周PTA最后排名
四.本周學習總結
1.我學到了
while和for 循環都可以用來處理同一個問題,一般可以互相代替。
對於while和do-while循環,循環體中應包括使循環趨於結束的語句。
用while和do-while循環時,循環變量初始化的操作應在while和do-while語句之前完成,而for語句可以在內部實現循環變量的初始化。
for循環是最常用的循環,它的功能強大,可以代替其他循環。
2.第8,9題還是不會做。
3.循環結構考試總結:
while
特點:如果一開始條件不成立,永遠不會執行循環體
do while
特點:不管條件是否成立,至少會執行一次循環體
for
選擇:一般優先考慮for循環,然后在考慮while循環,但需要根據具體情況,有時while比for好用
break的使用:1.switch語句:退出整個switch語句 2.循環結構:退出整個循環結構
注意點:多重嵌套只對最近的的循環體有效
continue的使用:結束當前這次的循環體,進入下一次循環體。