第14、15週PTA題目的處理
題目1 選擇法排序
1.實(shí)驗(yàn)代碼
#include <stdio.h> #include <stdlib.h> int main() {int n,index,exchange,i,j;scanf("%d\n",&n);int num[n];for(index=0;index<n;index++)scanf("%d ",&num[index]);for(i=0;i<n-1;i++){for(j=i+1;j<n;j++){if(num[j]>num[i]){exchange=num[j];num[j]=num[i];num[i]=exchange;}elsecontinue;}}for(index=0;index<n;index++){if(index==0)printf("%d",num[index]);elseprintf(" %d",num[index]);}system("pause");return 0; }2.設(shè)計(jì)思路
(1)算法
第一步:輸入整數(shù)的個(gè)數(shù)n,定義數(shù)組num[n]
第二步:按照順序輸入整數(shù)存入num[n]
第三步:外循環(huán)變量i=0,內(nèi)循環(huán)變量j=i+1
第四步:若num[i]<num[j],則交換num[i]和num[j]
第五步:j++,若j>=n,則i++,若i>=n-1,則下一步,否則跳到上一步
第六步:輸出num[n]中的數(shù),第二個(gè)數(shù)開始前面跟上空格
(2)流程圖
3.本題調(diào)試過(guò)程碰到問(wèn)題及解決辦法
(注:圖片在保存後成了問(wèn)號(hào),沒(méi)有副本)
問(wèn)題:在做交換時(shí),內(nèi)外循環(huán)都用了一個(gè)循環(huán)變量,導(dǎo)致進(jìn)行完第一次內(nèi)循環(huán)外循環(huán)就停止了
解決辦法:在內(nèi)外循環(huán)中使用兩個(gè)不同的循環(huán)變量
題目2 輸出數(shù)組元素
1.實(shí)驗(yàn)代碼
#include <stdio.h> #include <stdlib.h> int main() {int n,index,difference;scanf("%d\n",&n);int num[n];for(index=0;index<n;index++)scanf("%d ",&num[index]);for(index=1;index<n;index++){difference=num[index]-num[index-1];printf("%d",difference);if(index+1==n)printf("\n");else if(index%3!=0)printf(" ");elseprintf("\n");}system("pause");return 0; }2.設(shè)計(jì)思路
(1)算法
第一步:輸入整數(shù)元素個(gè)數(shù)n
第二步:按照順序輸入整數(shù)存入num[n]中
第三步:循環(huán)變量index=1,若index<n,則後項(xiàng)減前項(xiàng)的差difference=num[index]-num[index-1],輸出difference,否則結(jié)束
第四步:若index+1=n,則輸出回車,否則判斷index mod 3不等於0,若是則輸出空格,否則輸出回車
第五步:index++,跳到第三步
(2)流程圖
3.本題調(diào)試過(guò)程碰到問(wèn)題及解決辦法
(注:圖片在保存後成了問(wèn)號(hào),沒(méi)有副本)
問(wèn)題:輸出元素時(shí)最後一個(gè)不是三的倍數(shù)會(huì)輸出空格,第一個(gè)數(shù)也會(huì)輸出空格
解決辦法:判斷輸出的這個(gè)數(shù)是不是最後一個(gè)數(shù),如果是的話就輸出回車,不是的話就判斷輸出的元素是不是3的倍數(shù)
題目3 數(shù)組元素循環(huán)右移問(wèn)題
1.實(shí)驗(yàn)代碼?
#include <stdio.h> #include <stdlib.h> int main() {int N,M,index,exchange;scanf("%d %d\n",&N,&M);int num[N],item[N];for(index=0;index<N;index++)scanf("%d ",&num[index]);for(index=0;index<N;index++){if(index+M>=N)item[(index+M)%N]=num[index];elseitem[index+M]=num[index];}for(index=0;index<N;index++){if(index==0)printf("%d",item[index]);elseprintf(" %d",item[index]);}system("pause");return 0; }?2.設(shè)計(jì)思路
(1)算法
第一步:輸入兩個(gè)正整數(shù)元素個(gè)數(shù)N,右移位數(shù)M
第二步:按照順序輸入各個(gè)整數(shù)存入num[N]中
第三步:循環(huán)變量i=0
第四步:若i>=N,跳到第七步
第五步:若i+M>=N,則項(xiàng)item[(i+M) mod N]=num[i],否則item[i+M]=num[i]
第六步:i++,跳到第四步
第七步:輸出item[index],第二個(gè)數(shù)前輸出一個(gè)空格
(2)流程圖
3.本題調(diào)試過(guò)程碰到問(wèn)題及解決辦法
問(wèn)題:沒(méi)有考慮M比N大的情況
解決辦法:當(dāng)前值的下標(biāo)與M和的餘數(shù)剛好是輸出值的下標(biāo),不管M是不是N的倍數(shù)都是一樣的
?Git地址:https://git.coding.net/MemoriesBook/123.git
個(gè)人總結(jié)
本週學(xué)習(xí)了一維數(shù)組和二維數(shù)組,了解了二維數(shù)組的框架結(jié)構(gòu),如同行和列的數(shù)字的排列,下標(biāo)還是和一維數(shù)組一樣的0到n-1,二維數(shù)組可以存放矩陣一類的數(shù)字,還可以進(jìn)行矩陣的運(yùn)算以及各種變換,其中有點(diǎn)難懂的是選擇法排序和冒泡法排序容易搞混,現(xiàn)在還不是很理解選擇法排序的意思,暫時(shí)先記住格式,寫在書上。
董欣的博客地址:http://www.cnblogs.com/dx2017/p/7967269.html
董雅潔的博客地址:http://www.cnblogs.com/exo123/p/7954060.html
馮子旋的博客地址:http://www.cnblogs.com/fengzx/p/7955263.html
| 代碼行數(shù) | 時(shí)間 | 博客字?jǐn)?shù) | 時(shí)間 | 涉及的知識(shí)點(diǎn) |
| 200 | 11.20 | 10 | 4 | 數(shù)組 |
| 100 | 11.21 | 10 | 4.5 | 數(shù)組 |
| 100 | 11.22 | 300 | 2 | if語(yǔ)句、循環(huán)結(jié)構(gòu) |
| 200 | 11.23 | 50 | 3 | 數(shù)組 |
| 100 | 11.24 | 50 | 1.5 | 數(shù)組 |
| 200 | 11.25 | 100 | 2.5 | 無(wú) |
| 300 | 11.26 | 100 | 3 | 無(wú)? |
| 300 | 11.27 | 0 | 2.5 | 二維數(shù)組? |
| 100 | 11.28 | 0 | 3.5 | 二維數(shù)組? |
| 200 | 11.29 | 60 | 5 | 二維數(shù)組? |
| 100 | 11.30 | 60 | 1 | 二維數(shù)組? |
| 300 | 12.1 | 90 | 2 | 二維數(shù)組? |
| 300 | 12.2 | 100 | 1.5 | 二維數(shù)組? |
?
轉(zhuǎn)載于:https://www.cnblogs.com/lixiaojing/p/7878001.html
總結(jié)
以上是生活随笔為你收集整理的第14、15週PTA題目的處理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: zoj 3329 概率dp
- 下一篇: [linux]查看linux下端口占用