標籤:直接插入 選擇 等於 學習 大於 理解 判斷 學習總結 很多
題目1:7-4 列印菱形圖案1. 本題PTA提交列表
2. 設計思路
1.定義變數i,j,k,n;且聲明i為要列印的行數,j是控制輸出列印空格和星星,n是菱形為菱形的高
2.輸入n
3.i=1,j=1
4.先列印上半部分,第一行到n/2+1行,輸出空格個數為n-2i+1,輸出的個數為2i-1換行,i++
5.i=n/2,i--
6.列印下半部分,第n/2+2行到第n行,輸出的空格個數為n+1-2i,輸出的個數為2i-1換行,j++
3.代碼
4.本題調試過程碰到問題及PTA提交列表情況說明。
剛開始的時候沒有想到說可以分析菱形的上下部分來控制輸出,所以寫出了以下的代碼
發現輸出的空格都沒有實現,後來改用老師的方法,先輸出上半部分,再輸出 下半部分
前面的空格公式錯誤,導致輸出錯誤,後來重新推匯出正確的公式後,輸出正確
題目2:7-7 發紅包1. 本題PTA提交列表
2. 設計思路
1.定義數組 a[7]={100,50,20,10,5,2,1}存放紙幣類型
2.定義數組b[7]={0}存放各類型紙幣的張數
3.定義整型變數 i,n;
4.scanf("%d",&n);
5.for(i=0;i<7;i++){//i從0開始,迴圈七次
b[i]=n/a[i];//張數等於總金額除以紙幣大小
n=n-a[i]*b[i];
6.printf("%3d元:%3d張\n",a[i],b[i]);
7.結束演算法
3.代碼
4.本題調試過程碰到問題及PTA提交列表情況說明。
剛開始的時候以為這題和以前做得換硬幣的題目相似,故寫了以下代碼
輸不出結果,並且過程太過繁瑣,所以想到調用數組
發現可以輸出,但是沒有靠右對齊,後來在網上查了資料,-%d表示靠左對齊,%d表示靠右對齊,但是提交後還是編譯錯誤,仔細閱讀題目後發現是要求個位元對齊,於是改為%3d,輸出正確
題目三:1. 本題PTA提交列表
2. 設計思路
定義函數 arithmetic( int value )
.主函數部分:1.定義第一個運算元 value1
2.輸入這個運算元
3.調用函數求運算式的解
函數部分:1./定義第二個運算元value2,flag=1/flag用於判斷是否為非法標識符以及除數為0的情況,
2.定義字元變數op
3.輸入第二個運算元,字元
4.判斷輸入的字元是否為合法標識符
5.若輸入的字元為=,則結束演算法
6.若字元為+,則value1=value1+value2
7.若字元為-,則value1=value1-value2
8.若字元為,則value1=value1value2
9.若字元為/,且value2不等於0,則value1=value1/value2;若value2等於0,則flag=0
10.重複步驟3-9.直到不滿足條件
11.判斷flag的值,若flag=0,輸出ERROR,否則輸出value1
12.返回value1
13.結束演算法
3.代碼
4.本題調試過程碰到問題及PTA提交列表情況說明
想的太過簡單,思路還停留在題目四則運算的階段,而題目要求的是先輸入一個運算式
後來問了同學,可以調用函數來解決,可是提交後還是錯誤,後來發現在判斷字元時忘了加“=”,
改過之後提交卻還是部分正確,
二、本周題目集的PTA最後排名。
三、本周學習總結(3分)1.你學會了什嗎?1.1 一維數組如何定義、初始化?
一維數組定義的一般形式為:
類型名 數組名 [數組長度];
一維數組的初始化和簡單變數的初始化一樣,在定義數組時,也可以對數組元素賦初值,其一般形式為:
類型名 數組名 [數組長度] = {初值表},初值表中依次放著數組元素的初值
1.2 一維數組在記憶體中結構?可畫圖說明。數組名表示什嗎?
在定義數組之後,系統根據數組中元素的類型及個數在記憶體中分配了一段連續的儲存單元用於存放數組中的各個元素,並對這些單元進行連續編號,即下標,以區分不同的單元,每個單元所需的位元組數有數組定義時給定的類型來確定;數組名表示該數組中第一個單元的地址,即首地址
1.3 為什麼用數組?
在程式中使用數組,可以讓一批相同類型的變數使用同一個陣列變數名,用下標來相互區分。它的優點是表達簡潔,可讀性好,便於使用迴圈
1.4 介紹選擇法、冒泡法、直接插入排序如何排序?虛擬碼展示.
1.5 介紹什麼是二分尋找法?它和順序尋找法區別?
二分尋找(又稱為折半尋找)是在有序序列中尋找比較多的尋找演算法,基本思路:設有一個從小到大的序列,取中間的元素m進行比較,如果等於需要尋找的元素x則返回元素m的下標,若x大於m則再從右邊的區間尋找,若x小於m則再從左邊的區間尋找,這樣每次減少一半的尋找範圍。時間複雜度為O(lgn),尋找速度相對順序尋找要快很多,但是尋找的資料序列必須是有序序列(即資料是從小到大或從大到小排序的)。
區別:二分法是折半尋找,而順序尋找則是曆便數組的尋找,對於資料較多時,二分法尋找的效率更高
1.6 二維數組如何定義、初始化?
二維數組的定義形式為:
類型名 數組名 [行長度] [列長度]
二維數組的初始化方法有兩種:
1.分行賦初值
類型名 數組名 [行長度] [列長度] = { {初值表0},...,{初值表k},...};把初值表k中的資料依次賦值給第k行的元素
1.7 矩陣轉置怎麼實現?方陣中:下三角、上三角、對稱矩陣的行標i列標j的關係?請說明。
行列互換;方陣中下三角:i>=j
上三角:i<=j
對稱矩陣:i=j
1.8 二維數組一般應用在哪裡?
用來表示一個二維表中按行,列組織在一起的資訊。為了唯一確定二維表中的一個元素,必須給出兩個下標。按照習慣,第一個下標確定的是元素所在的行號,第二個列標確定元素所在的列號
2.本周的內容,你還不會什嗎?
對於數組的使用還不是很熟悉,還有二維數組還不是很理解,各個進位之間的轉化還不是靈活的運用;
對於冒泡排序,選擇排序還不是很理解
課堂派上的題目
C語言部落格作業--資料類型