做業要求連接:https://edu.cnblogs.com/campus/hljkj/Cprogramming_2018Autumn_CST2018_4/homework/2502html
1、計算機18秋-函數 c++
6-3 數字金字塔 (15 分)
本題要求實現函數輸出n行數字金字塔。web
函數接口定義:
void pyramid( int n );
其中n
是用戶傳入的參數,爲[1, 9]的正整數。要求函數按照如樣例所示的格式打印出n
行數字金字塔。注數組
意每一個數字後面跟一個空格。函數
裁判測試程序樣例:
#include <stdio.h> void pyramid( int n ); int main() { int n; scanf("%d", &n); pyramid(n); return 0; } /* 你的代碼將被嵌在這裏 */
輸入樣例:
5
輸出樣例:
1 2 2 3 3 3 4 4 4 4 5 5 5 5 5
一、實驗代碼
1 void pyramid( int n ) 2 { 3 int i,j; 4 for(i=1;i<=n;i++){ 5 for(j=1;j<=n-i;j++){ 6 printf(" "); 7 } 8 for(j=1;j<=i;j++){ 9 printf("%d ",i); 10 } 11 putchar('\n'); 12 } 13 }
二、解題思路學習
(1)文字描述測試
第一步:設置所需變量:i,j,n;spa
第二步:若i=1時,在數字以前須要n-1個空格;若i=2時,在數字以前須要n-2個空格;以此類推,若數字爲i時,須要n-i個空格;3d
第三步:當i=1時,輸出一個1;當i=2時,輸出兩個2;以此類推,若數字爲i時,須要輸出i個i;調試
第四步:每一行以後輸入一個「\n」用於分行。
(2)流程圖
三、本題調試過程碰到問題及解決辦法
(1)問題
輸出時沒有分行,如圖:
(2)解決辦法
在循環過程最後添加「\n」用於分行。
2、計算機18秋-數組1
7-2 輸出數組元素 (15 分)
本題要求編寫程序,對順序讀入的n個整數,順次計算後項減前項之差,並按每行三個元素的格式輸出結果。
輸入格式:
輸入的第一行給出正整數n(1<n≤10)。隨後一行給出n個整數,其間以空格分隔。
輸出格式:
順次計算後項減前項之差,並按每行三個元素的格式輸出結果。數字間空一格,行末不得有多餘空格。
輸入樣例:
10 5 1 7 14 6 36 4 28 50 100
輸出樣例:
-4 6 7 -8 30 -32 24 22 50
一、實驗代碼
#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、計算機18秋-數組2
7-2 查找整數 (10 分)
本題要求從輸入的N個整數中查找給定的X。若是找到,輸出X的位置(從0開始數);若是沒有找到,輸出「Not Found」。
輸入格式:
輸入在第一行中給出兩個正整數N(≤20)和X,第二行給出N個整數。數字均不超過長整型,其間以空格分隔。
輸出格式:
在一行中輸出X的位置,或者「Not Found」。
輸入樣例1:
5 7 3 5 7 1 9
輸出樣例1:
2
輸入樣例2:
5 7 3 5 8 1 9
輸出樣例2:
Not Found
一、實驗代碼
1 #include <stdio.h> 2 3 int main() 4 { 5 int n, m; 6 scanf("%d %d", &n, &m); 7 8 int a[n], i, k = 1; 9 for(i = 0; i < n; i++) { 10 scanf("%d", &a[i]); 11 if(a[i] == m) { 12 printf("%d", i); 13 k = 0; 14 } 15 } 16 if(k == 1) { 17 printf("Not Found"); 18 } 19 20 return 0; 21 }
二、解題思路
(1)文字描述
第一步:設置變量:i,k,n,m,設置數組:a[n];
第二步:對數組a[n]進行賦值,包括想要查詢的數值;
第三步:運用循環語句,從a[n]中尋找與m相等的數,並設一變量k;若能找到與m想等的數,則k=0,反之,k=1;
第四步:若k=0,輸出與m數相等的a[n]中的n,若k=1,輸出Not Found
(2)流程圖
三、本題調試過程碰到問題及解決辦法
運行出錯,僅小部分正確,如圖:
(2)解決辦法
if語句出錯,條件中改成a[i]==m;
3、我的總結
(1)總結這幾周你學習哪些內容(不限於課上)?你有哪些收穫?
這幾周學習了數組;
學習後能用數組簡明的寫出所需程序
(2)總結這幾周所學內容中你以爲哪些地方是難點?對此你作了哪些措施去克服這些困難?
1:數組的賦值一開始沒有弄明白;
2:函數的聲明容易出現錯誤
3:不懂函數的調用
①:經過翻閱書籍瞭解數組的定義;
②:經過中國mooc學習
4、互評和學習進度
二、學習進度
(1)表格
(2)折線圖