這個作業屬於那個課程 | C語言程序設計II |
---|---|
這個作業要求在哪里 | 作業要求 |
我在這個課程的目標是 | 我希望能開發一種全新的語言程序 |
這個作業在那個具體方面幫助我實現目標 | 熟悉使用循環語句的嵌套 |
參考文獻 | for語句 |
本周作業
1.PTA實驗作業
2.代碼互評
3.學習總結
作業格式
1.PTA實驗作業
1.1 輸出三角形字符陣列 (15 分)
本題要求編寫程序,輸出n行由大寫字母A開始構成的三角形字符陣列。
1.1.1數據處理
數據表達:定義整形函數n,i,j,z和字符形函數ch。使用for嵌套循環。
數據處理:
include<stdio.h>
int main()
{
int n,i,j,z;
char ch;
ch='A';//給字符變量賦值
scanf("%d",&n);//輸入n的值
j=n;
for(i=1;i<=n;i++)//輸出從1到n行
{
for(z=1;z<=j;z++)//輸出每行上的字符
{
printf("%c ",ch);
ch++;//字符數值+1
}
j--;//每行字符數遞減
printf("\n");//跳行
}
}
1.1.2實驗代碼截圖
1.1.3 造測試數據
輸入數據 | 輸出數據 | 說明 |
---|---|---|
4 | A B C D\n E F H\n I J\n K | 默認值 |
2 | A B\n C | 隨機值 |
1.1.4 PTA提交列表及說明
錯誤點:1.j=n的位置放到了scanf語句之前,導致錯誤輸出。(Dve-c++)
1.2 梅森數 (20 分)
1.2.1數據處理
數據表達:定義整形函數n,i,j,m,count=0,使用for循環嵌套和if判斷語句。
數據處理:
int main()
{
int n,i,j,m,count=0;
scanf("%d",&n);//輸入n
for(i=2;i<=n;i++)//使次冪從2到n
{
m=pow(2,i)-1;//得到梅林數值
for(j=2;j<=sqrt(m);j++)//循環判斷梅林數為素數
{
if(m%j0)
break;
}
if(j>sqrt(m))
{
printf("%d",m);
printf("\n");
count++;//計數器+1
}
}
if(count0)
printf("None");
return 0;
}
1.2.2實驗代碼截圖
1.2.3 造測試數據
輸入數據 | 輸出數據 | 說明 |
---|---|---|
6 | 3\n 7\n 31 | 默認值 |
2 | 3 | 隨機 |
1.2.4 PTA提交列表及說明
錯誤點:一開始不能理解if(i>sqrt(m))為什么會出現,多虧了助教幫助。(Dve-c++)
2.代碼互評(5分)梅森數
同學代碼:
我的代碼:
不同點:
找素數的兩種方法
3.學習總結(15分)
3.1 學習進度條(5分)
周/日期 | 這周所花的時間 | 代碼行 | 學到的知識點簡介 | 目前比較迷惑的問題 |
---|---|---|---|---|
第三周 | 約10小時 | 約100行 | 掌握關系運算、if-else語句、格式化輸入語句scanf(),以及常用的數學庫函數 | 不能脫離書本自己編寫代碼 |
第四周 | 8+小時 | 約105行 | for循環語句 | 不能靈活運用for語句 |
第五周 | 約7小時 | 約54行 | 定義函數 | 還未真正學會定義函數 |
第六周 | 約12小時 | 約186行 | 自定義函數和多分支結構的運用 | 這次的填空題不明其意!! |
第七周 | 約6小時 | 約145行 | switch語句的使用 | 有好多題可以使用if語句會簡單一點,switch反倒很難想出怎么編譯 |
第八周 | 約8小時 | 約94行 | do-while語句和while語句的使用 | 有時會搞錯while內的條件 |
第九周 | 約9小時 | 約87行 | 循環語句的嵌套 | 不怎么能靈活使用for循環嵌套 |
第十周 | 約8小時 | 約121行 | 循環語句的嵌套 | 情急下想不出語句的靈活使用 |
3.2 累積代碼行和博客字數(5分)
3.3 學習內容總結和感悟(5分)
3.3.1 學習內容總結
3.3.2 學習體會
我發現我並不是特別了解調試,我會試着去拿一些題去嘗試調試,理解調試的原理。for語句的順序不小心在這次作業中出現錯誤,我會抽時間回顧學過的知識。