一:
作業要求鏈接:https://edu.cnblogs.com/campus/hljkj/Cprogramming_2018Autumn_CST2018_4/homework/2502
二:
函數6-2 找兩個數中最大者
1.實驗代碼
int max( int a, int b ) { int max; if(a>b) max=a; else max=b; return max; }
2.解題思路
(1)文字描述
第一步:首先定義a和b兩個變量
第二步;然后使用if語句判斷a大於b時候的情況
第三步:當a<b時max=b。
第四步:最后返回max;
(2)流程圖

(3)
本題調試過程碰到問題及解決辦法


遇到的問題是編譯錯誤;
使用斷點進行調試之后發現由於粗心大意在int max( int a, int b )后面多加了一個分號。
將分號刪除之后就解決了問題。
數組一:7-2 輸出數組元素
1.實驗代碼
#include<stdio.h> int main() { int i, n, cnt = 0; int a[10]; scanf("%d", &n); for (i = 0; i < n; i++) { scanf("%d", &a[i]); } for (i = 0; i < n - 1; i++) { a[i] = a[i + 1] - a[i]; } for (i = 0; i < n - 1; i++) { if (i == 0) { printf("%d", a[0]); } else if (cnt == 3) { printf("\n"); printf("%d", a[i]); cnt = 0; } else { printf(" %d", a[i]); } cnt++; } return 0; }
2.解題思路
(1)文字描述
第一步:定義i, n, cnt = 0
第二步:輸入n,然后設置for循環輸入數組
第三步:利用a[i] = a[i + 1] - a[i]計算后項減前項之差
第四步:每行三個元素的格式cnt == 3,
第五步:cnt循環;
(2)流程圖

(3)本題調試過程碰到問題及解決辦法
遇到的問題是編譯錯誤;
使用斷點進行調試之后發現定義的a【N】出現了錯誤;
N不是實際的量,將N改為題目要求的10便迎刃而解了。
數組二:7-4 選擇法排序
1.實驗代碼
#include <stdio.h> int main() { int i, j, min, temp, a[10]; for(i = 0; i < 10; i++) { scanf("%d",&a[i]); } for(i = 0; i < 3;i++) { min=i; for(j = i+1; j <10; j++) { if(a[min] > a[j]) { min=j; } } temp=a[i]; a[i]=a[min]; a[min]=temp; } for(i = 0; i < 10; i++) printf("%5d",a[i]); return 0; }
2.解題思路
(1)文字描述
第一步:定義變量 i,n,讀入n個數 temp 臨時變量
第二步:定義1個數組a,它有10個整型元素
第三步:利用for(i = 0; i < 3;i++)進行趟數控制
第四步:利用for(j = i+1; j <10; j++)起始交換位置
第五步:
利用temp=a[i];
a[i]=a[min];
a[min]=temp;進行交換;
第六步:輸出最后結果;
(2)流程圖

(3)本題調試過程碰到問題及解決辦法


遇到的問題是答案錯誤
再用Devc++進行調試時發現沒有編譯錯誤,但在輸出結果上發現5和6的位置沒有改變。
后來發現在for(i = 0; i <= 3;i++)這個位置上趟數的控制應該是<3,而不是<=3,
將問題糾正以后,5和6果然換了位置。
三:個人總結
(1)這幾周我學習了有關函數,數組的知識。我的收獲是了解了什么是數組,
為什么要使用數組,以及怎么去定義數組,
我還學到了引用數組元素,並且知道了二維數組的元素在內存中(按行存放)即在內存中線順序存放第一行的元素,
再存放第二行的元素。
(2)我覺得在何時使用數組這個地方是個難點。我用了多打代碼這個方法,
並且理解其內涵觀看網上視頻了解了何時使用數組,並去定義數組。
四,(1)互評和學習進度
趙豪
張學健
周文豪
(2)表格和折線圖
| 代碼行數 | 代碼時間/h | 博客字數 | 博客時間/h | |
| 第十二周 | 2700 | 15 | 0 | 0 |
| 第十三周 | 3200 | 18 | 1000 | 6 |
| 第十四周 | 1800 | 11 | 0 | 0 |
| 第十五周 | 2200 | 13 | 1100 | 5 |

