這個作業屬於哪個課程 | https://edu.cnblogs.com/campus/zswxy/CST2020-2 |
---|---|
這個作業要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2020-2/homework/11611 |
這個作業的目標 | 學習及掌握循環及嵌套,了解break和continue用法,怎么跳出循環 |
學號 | 20208966 |
1.PTA實驗作業(20分/題)
1.1 題目1
輸入整數m,將所有大於1小於整數m的素數存入所指定的數組中(數組最多只存放100個素數,超過則提示“OVERFLOW”),輸出各素數——若輸入的m≤2,則提示“NO”,程序終止。注:素數(Prime Number),亦稱質數,指在一個大於1的自然數中,除了1和此整數自身外,沒法被其他自然數整除的數。
1.1.1 數據處理
數據表達:定義數組a[100]和整數m,count,t表示每行個數
數據處理:輸入m,用循環將1到m的所有整數放入a[100],自定義一個Prime函數判斷素數,在main函數里調用Prime函數
for (int i = 1; i <= m; i++) {
if (Prime(i) == 1) {
a[count] = i;
count++;
1.1.2 實驗代碼截圖
1.1.3 造測試數據
輸入數據 | 輸出數據 | 說明 |
---|---|---|
2 | No | m<=2 |
1000 | OVERFLOW | 數組最多只存放100個素數 |
1.1.4 PTA提交列表及說明
說明:
格式錯誤:最后換行錯誤,每十五個換行,用t%15==0來判斷是否換行
部分正確:最后每行不足十五時結束,要在最后一個循環外面用換行符結束
1.2 題目2
本題要求對任意給定的一位正整數N,輸出從11到NN的部分口訣表。
1.2.1 數據處理
數據表達:定義整數x,y,n,s分別表示行數,列數,輸入的整數,每次的運算結果
數據處理:用for循環嵌套,外層表示行,內層表示列
for(x=1;x<=n;x++)
{
for(y=1;y<=x;y++)
{
s=x*y;
1.2.2 實驗代碼截圖
1.2.3 造測試數據
輸入數據 | 輸出數據 | 說明 |
---|---|---|
1 | 1*1=1 | 一行一列 |
9 | 11=1 ····· 99=81 | 九行且每行遞增一列到九列 |
1.2.4 PTA提交列表及說明
說明:
格式錯誤:最后輸出應該為"%-4d",否則輸出結果與預期不符
2.代碼互評(5分)
同學代碼:
我的代碼:
對比:
同學的代碼很特別的一步是num = (n * (n + 1)) / 2,再用一個if的判斷再采用兩個for循環的嵌套,是將答案存儲在數組中;而我用了一個循環嵌套直接行與列計算輸出結果
3.學習總結(15分)
3.1 學習進度條(5分)
3.2 累積代碼行和博客字數(5分)
3.3 學習內容總結和感悟(5分)
3.3.1 學習內容總結
3.3.2 學習體會
1.最近一直是在復習,沒有太多的去接觸新的知識,對我而言,任何東西,基礎最重要,現在回過頭來看看之前的知識,比第一次接觸時要清晰很多,也嘗試用后面所學的去解決,對於c語言,當然也還沒有接觸到最深的那塊地方,自知還有很多不足的地方,接下來的時間里我會去一一彌補改正。
2.對於如何跳出多重循環:第一可以在循環內部設定一個停止條件;第二增加break;第三使用goto語句(無條件轉移語句)goto語句通常與條件語句配合使用。可用來實現條件轉移, 構成循環,跳出循環體等功能。但是,在結構化程序設計中一般不推薦使用goto語句, 以免造成程序流程的混亂,使理解和調試程序都產生困難。