一、作業要求:https://edu.cnblogs.com/campus/hljkj/Cprogramming_2018Autumn_CST2018_4/homework/2502
二、函數:6-3 數字金字塔
1.實驗代碼
void pyramid (int n) { int row, col; for (row = 1; row <= n; row++){ for (col = 1; col <= n-row; col++) { printf(" "); } for (col = 1; col <= row; col++) { printf("%d ", row); } putchar ('\n'); } }
2.解題思路
第一步:定義變量
第二步:建立for循環
第三步:輸出結果
3.本題調試過程碰到問題及解決辦法
由於第一次接觸函數作業,所以在上交的過程中會有編譯錯誤的提示,通過詢問助教后明白了其中的錯誤並將其改正。
2、數組.1:7-4 求一組數中的最大值和次最大值
1、實驗代碼
#include<stdio.h> int main() { const int N=10; int a[N]; int i; int p,q; int cmax,max; for(i=0;i<10;i++) { scanf("%d",&a[i]); } max=a[0]; cmax=a[0]; for(i=1;i<10;i++) { if(max<a[i]) { max=a[i]; p=i; } } for(i=1;i<10;i++) { if(cmax<a[i]&&i!=p) { cmax=a[i]; } } printf("max=%d,cmax=%d",max,cmax); return 0; }
2.解題思路
第一步:定義變量
第二步:輸入數組中的數,使max=a[0];cmax=a[0];
第三步:建立for循環
第四步:在for循環中建立if判斷語句條件為max<a[i]?
第五步:建立for循環
第六步:在for循環中建立if判斷語句條件為cmax<a[i]&&i!=p?
第七步:在for循環中輸出結果
3.本題調試過程碰到問題及解決辦法
第一次沒有利用好數組中最大值的編號,導致出現了錯誤。通過反復調試得到改進。
3、數組.2:7-1 簡化的插入排序
1.實驗代碼
#include<stdio.h> int main() { const int N=10; int a[N]; int i,n,x,j,t; scanf("%d",&n); for(i=0;i<n;i++) { scanf("%d",&a[i]); } scanf("%d",&x); j=n; if(a[n-1]>x) { t=x; x=a[n-1]; a[n-1]=t; } while(j!=0) { for(i=0;i<n-1;i++) { if(a[i]>a[i+1]) { t=a[i]; a[i]=a[i+1]; a[i+1]=t; } } j--; } for(i=0;i<n;i++) { printf("%d ",a[i]); } printf("%d ",x); return 0; }
2.解題思路
第一步:定義變量
第二步:輸入數組中的數
第三步:建立if判斷語句
第四步:建立while循環條件為j!=0;
第五步:在while循環中建立for循環;
第六步:在for循環中家里if判斷語句;
第七步:通過for循環輸出結果;
3.本題調試過程碰到問題及解決辦法
三、個人總結
(1)總結這幾周你學習哪些內容(不限於課上)?你有哪些收獲?
這幾周我們學習了數組;
我學習后能用數組快速的編輯所需的程序,並更簡單明了的譜寫出來。
(2)總結這幾周所學內容中你覺得哪些地方是難點?對此你做了哪些措施去克服這些困難?
1:數組的定義一開始沒有弄明白;
2:函數的聲明容易出現錯誤
3:不懂函數的調用
①:通過翻閱書籍了解數組的定義;
②:通過中國mooc學習函數
四、互評和學習進度
(1):劉昱淞同學
(2):邱作鵬同學
(3):王恩臨同學
周數 | 本周代碼行數/行 | 編寫代碼時間/時 | 博客字數/字 |
博客所用時間/時 |
涉及知識點 |
第十三周 | 4000 | 20 | 0 | 0 | 函數 |
第十四周 | 3500 | 17 | 0 | 0 | 數組 |
第十五周 | 3500 | 18 | 0 | 0 | 數組 |
第十六周 | 4000 | 21 | 1200 | 5 | 二維數組 |