問題 | 答案 |
---|---|
這個作業屬於在哪個課程 | C語言程序設計II |
這個作業要求在哪里 | <a href="https://edu.cnblogs.com/campus/zswxy/CST2019-1/homework/10095" |
target="_blank">C語言I作業10 | |
我在這個課程目標是 | 學好C語言,為后面學習打好基礎 |
這個作業具體在哪里方面幫助我 | 綜合介紹循環結構的程序設計 |
參考文獻 | <a href="https://baidu.com"target="_blank">百度 , <a href="https://www.cnblogs.com/pengchen511/p/10564067.html"target="_blank">C語言作業評價標准 |
一:PTA實驗作業
1.1題目名輸出三角形字符陣列
本題要求編寫程序,輸出n行由大寫字母A開始構成的三角形字符陣列。
輸入格式:
輸入在一行中給出一個正整數n(1≤n<7)。
輸出格式:
輸出n行由大寫字母A開始構成的三角形字符陣列。格式見輸出樣例,其中每個字母后面都有一個空格。
1.1.1數據處理
1.數據處理:用了整形變量n,i,字符型變量A,n是輸入的行數,i是循環變量,A是字符A
2.數據表達
定義整形變量n
輸入整數n
定義字符變量A
定義整形變量i
if n<7 then //少於7行
while n≠0
do for(i=0 ;i<n ;i++)
printf("%c",ch)//打印字符
ch++//字母往后加
printf("\n")//換行
n=n-1//每一行減少
else printf("輸入不正確");
1.1.2PTA實驗貼圖
1.1.3造數據測試
輸入數據 | 輸出數據 | 說明 |
---|---|---|
3 | ![]() |
隨機的 |
5 | ![]() |
隨機的 |
6 | ![]() |
隨機的 |
1.1.4PTA提交列表說明
格式錯誤,可能是沒有排版好,代碼不規范,導致換行錯誤
1.2題目名梅森數
形如2n-1的素數稱為梅森數(Mersenne Number)。例如22-1=3、23-1=7都是梅森數。1722年,雙目失明的瑞士數學大師歐拉證明了231-1=2147483647是一個素數,堪稱當時世界上“已知最大素數”的一個記錄。
本題要求編寫程序,對任一正整數n(n<20),輸出所有不超過2*n-1的梅森數。
輸入格式:
輸入在一行中給出正整數n(n<20)。
輸出格式:
按從小到大的順序輸出所有不超過2*n-1的梅森數,每行一個。如果完全沒有,則輸出“None”
1.2.1數據處理
1.數據處理:定義了整形變量n,i,num,a,count,n是輸入小於20的數,i是二的冪,num是輸入的素數,a用來判斷是否是梅森數,count是用來累加梅森數
2.數據表達:
調用數學函數
定義了整形變量n,i,num,a,count
輸入n
for(i=2;i<=n;i++)//從2開始循環,因為1不是素數,從2之后才有素數
do num=pow(2,i)-1;//數學公式
for (a=2;a<=num/2;a++)//判斷梅森數
if(num%a==0) end//條件滿足跳出循環
if (num%a!=0)
printf("%d\n",num);//換行,題目要求的
if(count==0)
printf("None");//沒有梅森數就輸出None
1.2.2PTA實驗貼圖
1.2.3造數據測試
輸入數據 | 輸出數據 | 說明 |
---|---|---|
6 | ![]() |
隨機打的 |
7 | ![]() |
隨機打的 |
8 | ![]() |
隨機打的 |
1.2.4PTA提交列表說明
1.編譯錯誤:剛開始沒看到,定義了兩個一樣的變量
2.編譯錯誤:有個忘記打分號,一開始沒有給count賦值
二:代碼互評
同學代碼1
同學代碼2
自己代碼
相互對比
1.同學1的代碼調用了數學函數,用了許多表達式,用了較的for語句,他是用代數計算方法算出ASCII值,方法獨特
2.同學2的代碼定義了許多變量,因為后面表達式需要運用,他沒有使用字符型的輸出,但是也是用字符來做的,用了for語句循環和if語句判斷條件是否成立
3.我用了字符型變量,用了if-else語句判斷條件,用了for和while語句循環,沒有定義很多變量,表達式較簡單
4.這是三份不同的代碼,我感覺各有各的好
三:學習體會
3.1學習進度條
周 | 這周花的時間 | 代碼行 | 學到的知識簡介 | 目前比較疑惑的問題 |
---|---|---|---|---|
第一周 | 3天 | 47 | 簡單的編程 | 無 |
第二周 | 4天 | 55 | 常量,變量,數據類型和一些運算符以及賦值運算 | 無 |
第三周 | 4天 | 95 | 關系運算、if-else語句、格式化輸入語句scanf(),以及常用的數學庫函數 | 格式控制 |
第四周 | 4天 | 92 | 使用for循環語句實現指定次數的循環程序設計 | 循環的順序 |
第五周 | 4天 | 85 | 對函數的定義和調用有初步的認識,能模仿編程 | 對函數題還不熟練 |
第六周 | 4天 | 152 | 學會多分支結構、字符型數據類型和邏輯運算符 | 字符型函數不太了解 |
第七周 | 4天 | 182 | 熟悉多分支結構switch語句的使用 | 怎么用switch語句簡單些 |
第八周 | 3天 | 118 | 熟悉使用while和do-while結構解決問題 | 字符型再加上while語句不太會用 |
第九周 | 4天 | 196 | 熟悉break、continue的使用 ;熟悉使用循環的嵌套解決問題 | 嵌套問題還不是很會 |
第十周 | 5天 | 200 | 綜合運用循環結構的程序設計 | 較復雜的代碼不太會用循環結構 |
3.2累積代碼行和博客字數
3.3學習內容總結和感悟
3.3.1學習總結
3.3.2學習體會
1.這周主要是對上周的內容進行總結,加強難度進行學習。
2.此次作業綜合性很強,比較難消化,所以需要勤加練習。
3.現在我們寫代碼必須規范起來,不然可能會出現格式錯誤,然后成習慣也不好
4.寫這次作業其實每題都有不同的方法,我們本周主要學習怎么讓代碼又好又簡單,這是我們需要練習的