標籤:需要 規律 end 大小 系統 相等 c語言 標識 求和
一、PTA實驗作業題目1:列印菱形圖案1. 本題PTA提交列表
2. 設計思路
定義整形變數n,t,迴圈變數i,j
輸入n的值
如果n!=1
則for i=1 to i<=(n+1)/2
for j=n+1-2i to j>=1
輸出空格
end j
for t=1 to t<=2i-1
輸出
end t
輸出\n換行
end i
for i=1 to i<(n+1)/2
for j=1 to j<=2i
輸出空格
end j
for t=1 to t<=n-2i
輸出
end t
輸出\n換行
end i
n=1時
則for i=1 to i<=(n+1)/2-1
輸出空格
end i
輸出*和一個空格
3.代碼
4.本題調試過程碰到問題及PTA提交列表情況說明。
- 沒找到菱形後半部分的規律,答案和例題得的一樣,但換其他數字輸入後就不是菱形了。
- 沒有討論當輸入的數為1的特殊情況,提交時看到pta上的提示才發現這點。
題目2:掉入陷阱的數字1. 本題PTA提交列表
2. 設計思路
定義整形變數n,sum,i=1,item1,item2 //sum表示各位元字相加的和,item1用來存放第N個數,item2用來存放第N+1個數
輸入n的值
sum賦初值為0
do
t=n;//t用來存放第N個數
while n!=0 //求各位元的和
sum=sum+n%10
n=n/10
end while.
sum=sum*3+1
sum的值賦給item2 //item2用來存放第N+1個數
輸出i和sum的值
n=sum;
sum再次賦值為0
i++
while x!=item1時
end do.
3.代碼
4.本題調試過程碰到問題及PTA提交列表情況說明。
- 第一次寫的時候誤解了題意,以為是各位元字相加求和那步只需在第一次的時候執行。
- 不知道while迴圈結束的條件是什麼,最後定義了兩個變數來記錄前後兩個數的值,不知道這樣會不會比較麻煩。
題目3:簡單計算機1. 本題PTA提交列表
2. 設計思路
定義整形變數 number,sum,flag初始值為0
定義字元型變數 op
輸入sum的值
while op不等於‘=‘成立
則 輸入一個字元
如果op等於‘=‘
flag=0;結束迴圈
else if op等於‘+‘
sum=sum+number;
else if op等於‘-‘
sum=sum-number;
else if op等於‘‘
sum=sumnumber;
else if op等於‘/‘
如果number==0
則 flag=1;結束迴圈
else
sum=sum/number;
else
flag=1;
end while迴圈
如果flag==0
輸出sum最終值
else
輸出"ERROR"
3.代碼
4.本題調試過程碰到問題及PTA提交列表情況說明。
第一次寫的時候我沒有在迴圈外輸出一個數,而是直接在迴圈內直接輸出一個數字和字元,再迴圈。提交顯示部分正確,因為我這個代碼當輸入的只有一個數字和一個等號時不能輸出結果。如我輸入’1=‘時,要輸出的’1‘這個數,而我寫的那個代碼不能實現,所以要放一個數在迴圈外。
二、本周題目集的PTA最後排名。
pta排名
三、本周學習總結1.你學會了什嗎?1.1 一維數組如何定義、初始化?
- 定義一個數組,需要明確陣列變數名,數組元素的類型和數組的大小。一般形式為 類型名 數組名【數組長度】。數組可以在定義的同時進行初始化。形式是以一對花括弧給出常量值表,系統按下標順序(儲存順序)對 數組元素進行初始化。給定常數的個數不能超過數組定義的長度。如果給定常數的個數不足,則系統對其餘元素初始化為0值。
1.2 一維數組在記憶體中結構?可畫圖說明。數組名表示什嗎?
- 在定義數組之後,系統根據數組中元素的類型及個數在記憶體中分配了一段連續的儲存單元用於存放數組中的各個元素,並對這些單元進行連續編號,即下標,以區分不同的單元。每個單元所需的位元組數由數組定義時給定的類型來決定。
- c語言規定,數組名表示該數組所分配連續記憶體空間中第一個單元的地址,即首地址。
1.3 為什麼用數組?
使用數組會讓程式變的簡單,而且避免了定義多個變數的麻煩。定義數組能 節省記憶體。在程式中使用數組,可以讓一批相同的類型的變數使用同一個陣列變數名,用下標來相互區分。他的優點是表達簡潔,可讀性好,便於使用迴圈結構。
1.4 介紹選擇法、冒泡法、直接插入排序如何排序?虛擬碼展示.
選擇法
定義變數N,,temp,迴圈變數i,j
定義數組a[N]
fori=0 to i<N
輸入a[i]的值
end i
for i=0 to i<N-1
for j=i+1 to j
冒泡排序法
定義變數a[N],,temp,迴圈變數i,j;
for(i=0 to i<N.
輸入a[i]的值
end i
for i=0 to i<N //冒泡排序
for j=0 to j
直接插入排序
for i=0 to i<N.
輸入a[i]的值
end i
for i=1 to i<N
如果(a[i]
end i
1.5介紹什麼是二分尋找法,它和順序尋找法區別?
二分尋找法:確定該區間的中點位置:mid=(low+hight)/2
(1)將待查數與中點的數作比較,若相等,則尋找成功。如果mid>要尋找的數,則捨去mid右邊的數,把mid左邊的數定為一個新序列。令high=mid-1。
(2)如果mid小於該數,,則捨去mid左邊的數,把mid右邊的數定為一個新序列。這時low=mid+1。
(3)重複步驟(1)和(2).
(4)如果low>high,則該序列中找不到相同的數。
區別
- 順序尋找法要把一個數與數列一個個比較,尋找效率低。
- 二分尋找法一定是有順序的數列,而順序尋找法不需要。
1.6 二維數組如何定義、初始化?
2順序賦值法,一般形式為:類型名 數組名【行長度】【列長度】={初值表}。
1.7 矩陣轉置怎麼實現?方陣中:下三角、上三角、對稱矩陣的行標i列標j的關係?請說明。
1.8 二維數組一般應用在哪裡?
2.本周的內容,你還不會什嗎?
pta中的第9題切分運算式和第8題判斷合法標識符還寫不出來。
C語言部落格作業--資料類型