1. 程式人生 > >函數 數組 循環

函數 數組 循環

不知道 進行 -- 直接 info 重新 第一個 雙層 分數

一.第一題 7-1

1.本題pta提交

技術分享圖片

2設計思路

本題要求使用子函數求組合數,註意本題變量要求是雙浮點型,在主函數中輸入範圍m,n,子函數為求sum的階乘,並在子函數中用組合數公式即可

技術分享圖片

3代碼截圖

技術分享圖片

題目2 7-10

1本題pta提交

技術分享圖片

2設計思路

本題要求打出遇到的n個數字不同的年份,先定義num[4]={0},n[10]={0},並有一個years=year,用num來儲存year的每個數,然後在i循環中使用n[num[i]]++,當n不等於0時,k++,循環結束退出判斷k=dif,跳出大循環,如果不成立,則將n重新賦0,並將進入下一個year,k=0,最後輸出應有的值。

技術分享圖片

3本題代碼

技術分享圖片

4遇到的問題

技術分享圖片

之前代碼的思路跟這個完全不一樣,我是通過對年份的每一位數進行判斷來執行count++,結果後來發現細節太多,然後一直修改,修改到最後還是無法全對,所以改了思路。

3 7-5

1本題pta提交

技術分享圖片

2設計思路

本題要求近似求pi,並給出了公式,本題難點主要在子函數的運用,分子為階乘,分母為3*5*7,循環幾次即可。

技術分享圖片

3本題代碼

技術分享圖片

二截圖本周的pta排名

技術分享圖片

三同學代碼互評

1互評同學

謝曄暉

2我的代碼、互評同學代碼截圖

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

3.我和同學代碼不同在哪裏?有哪些各自優勢?你更喜歡哪種代碼風格?如果同學代碼有錯的也請幫忙指出來哪裏出問題

不同之處:我用的是double來定義子函數,而同學用的是void,沒有返回值,我覺得有返回值看起來比較清晰,還有就是對pi的定義同學采用了靜態變量,省時,而我每一次都要重新輸入比較麻煩,我比較喜歡同學對細節的處理,喜歡自己的思路。

四、本周學習總結

1.對子函數的使用,子函數可以使代碼看起來更簡便。

2.我們還學習了對指針數組的運用,但我在這裏並沒有太大體現,主要是對指針數組的不熟悉運用造成的,指針的地址還不太熟悉。

pta實驗作業

1.7-21

技術分享圖片

2.設計思路

本題要求將方針循環右移,主要就是最後一個數與第一個數的對接。我先用一個數將最後一個數存起來,然後當其他循環結束時將最後一個放到第一個重復循環n次。

技術分享圖片

3代碼截圖

技術分享圖片

4本題遇到的問題

技術分享圖片

當時粗心在輸出的時候將j++寫成了i++。

第二題7-5

1本題pta提交

技術分享圖片

2設計思路

本題要將字符串的長度排序,基本思路並不難,只是在輸入和排序的時候需要用到新的東西,比如說strcmp比較輸入字符是否為#,還有就是strlen比較字符的長度,strcpy將字符串對調,還有首函數的定義,記得要加上string。

技術分享圖片

3代碼截圖

技術分享圖片

4本題調試過程遇到的問題

技術分享圖片

這邊第一個輸入循環時,忘記將i++,變成了sum++,導致答案都錯誤

第三題7-14

1本題pta提交

技術分享圖片

2設計思路

本題要在一串數字中插入一個數,所以我定義了兩個數組,讓第二個數組比第一個大一位,先把他們全相等,然後找到插入位置,將其插入即可

技術分享圖片

3代碼截圖

技術分享圖片

4本題調試過程中遇到的問題

技術分享圖片技術分享圖片

不知道為什麽總是無法滿分,每次提交的分數均有不同。

二,截圖本周目集的PTA最後排名。

技術分享圖片

三、同學代碼互評

1互評同學

謝曄暉

2我的代碼、互評同學代碼截圖

技術分享圖片

技術分享圖片

3我和同學代碼不同在哪裏?有哪些各自優勢?你更喜歡哪種代碼風格?如果同學代碼有錯的也請幫忙指出來哪裏出問題。

不同之處:對此問題時,我使用了兩個數組解決問題(因為擔心本來數組的空間不足),而謝同學用一個數組解決問題,我的思路比較清楚,而他的思路比較簡單。

我比較喜歡謝同學的思路,因為思路比較簡單,而我的思路因為擔心空間不足顯得較為復雜。

四、本周學習總結

1.1一維數組與二維數組的運用

int a[10],b[10][20];/*b[10][20]矩陣的運用*/

char c[10],ch[10][20];/*ch[10][20]為一個字符串數組每個字符串有20個長度。*/

2.1string 字符串的運算

strcpy(a,b)將b復制到a上,保存到a

strcmp(a,b)比較a,b,相等則輸出0

strcat(a,b)將b接到a的後面並保存到a

strlen(a)計算a的字符長度

不足之處:

string的字符串運用的不夠熟練。字符串寫起來容易錯。

---恢復內容結束---

一.PTA實驗作業

1.7-6 本題pta提交列表

技術分享圖片

2.設計思路

定義M,N,i,sum=0,count=0.輸入m,n。套用雙層循環並使i=2為初值(1的話後面循環直接跳出),並在i循環用M%i判斷,當等於0的時候跳出i循環。跳出或者循環結束後判斷i是否等於M,等於則count++,sum=sum+M。然後等到M循環結束,輸出count就為素數的個數,以及sum為它們的和。

技術分享圖片

3代碼截圖

技術分享圖片

4做題途中遇到的問題

錯誤一技術分享圖片

當時使用flag判斷,少掉了m=n且不為素數的情況,如果出現該種情況代碼初值必定為m,導致出錯思路不大對。

2.7-12

pta上提交列表

技術分享圖片

2設計思路:本題需約分最簡分式,首先定義分子分母和斜杠,然後開始判斷如果num1<=num2,將num1作為循環終點,除到num1即可。然後在i循環中當num1%i&&num2%i==0時,為一個公約數。然後繼續循環,直到i==num1。反之num2>num1也是。

技術分享圖片

3代碼截圖

技術分享圖片

4錯誤點1

技術分享圖片

沒有思考分子大於分母的情況

3 7-21

該題pta

技術分享圖片

3設計思路

定義i,hh,mm。輸入hh,mm,然後開始判斷當hh>12且mm==0然後開始i循環hh>12多少輸出多少dang,判斷如果hh>=12&&mm>0然後開始i循環這邊有一個邊界問題要hh-11輸出dang最後兩種特殊情況hh<12時按格式輸出hh,mm,然後當mm==0的時候,按格式輸出。

技術分享圖片

4代碼截圖

技術分享圖片

4本題遇到的問題

技術分享圖片

少了對12點邊界的計算,邊界問題。

二.截圖本周日集的pta排名

技術分享圖片

三、同學代碼互評

1互評同學名稱

許日禎

2.我的代碼、互評同學代碼

技術分享圖片

技術分享圖片

3.我和同學代碼不同在哪裏?有哪些各自優勢?你更喜歡哪種代碼風格?如果同學代碼有錯的也請幫忙指出裏出問題。

相同之處:總體思路並沒有太大差別

不同之處:這邊初定義的時候小日同學用了一個初值判斷,引入了n,避開了m==1的情況,而我則是直接使用m就直接避開

比較起來的話我覺得自己的思路比較清晰,小日同學的n加的比較局促,我更喜歡自己的代碼。

四、本周學習總結

1.1使用while,for語句進行循環。

1.2循環嵌套有進一步學習到

1.3switch語句的學習

不足之處

循環嵌套起來可能會有些混亂,switch語句不太會用

函數 數組 循環