題目1 選擇法排序

1.實驗代碼

#include <stdio.h>
#include <stdlib.h>
int main()
{
int n,index,exchange,i,j;
scanf("%d\n",&n);
int num[n];
for(index=;index<n;index++)
scanf("%d ",&num[index]);
for(i=;i<n-;i++)
{
for(j=i+;j<n;j++)
{
if(num[j]>num[i])
{
exchange=num[j];
num[j]=num[i];
num[i]=exchange;
}
else
continue;
}
}
for(index=;index<n;index++)
{
if(index==)
printf("%d",num[index]);
else
printf(" %d",num[index]);
}
system("pause");
return ;
}

2.設計思路

(1)算法

第一步:輸入整數的個數n,定義數組num[n]

第二步:按照順序輸入整數存入num[n]

第三步:外循環變量i=0,內循環變量j=i+1

第四步:若num[i]<num[j],則交換num[i]和num[j]

第五步:j++,若j>=n,則i++,若i>=n-1,則下一步,否則跳到上一步

第六步:輸出num[n]中的數,第二個數開始前面跟上空格

(2)流程圖

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

(注:圖片在保存後成了問號,沒有副本)

問題:在做交換時,內外循環都用了一個循環變量,導致進行完第一次內循環外循環就停止了

解決辦法:在內外循環中使用兩個不同的循環變量

題目2 輸出數組元素

1.實驗代碼

#include <stdio.h>
#include <stdlib.h>
int main()
{
int n,index,difference;
scanf("%d\n",&n);
int num[n];
for(index=;index<n;index++)
scanf("%d ",&num[index]);
for(index=;index<n;index++)
{
difference=num[index]-num[index-];
printf("%d",difference);
if(index+==n)
printf("\n");
else if(index%!=)
printf(" ");
else
printf("\n");
}
system("pause");
return ;
}

2.設計思路

(1)算法

第一步:輸入整數元素個數n

第二步:按照順序輸入整數存入num[n]中

第三步:循環變量index=1,若index<n,則後項減前項的差difference=num[index]-num[index-1],輸出difference,否則結束

第四步:若index+1=n,則輸出回車,否則判斷index mod 3不等於0,若是則輸出空格,否則輸出回車

第五步:index++,跳到第三步

(2)流程圖

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

(注:圖片在保存後成了問號,沒有副本)

問題:輸出元素時最後一個不是三的倍數會輸出空格,第一個數也會輸出空格

解決辦法:判斷輸出的這個數是不是最後一個數,如果是的話就輸出回車,不是的話就判斷輸出的元素是不是3的倍數

題目3 數組元素循環右移問題

1.實驗代碼

#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=;index<N;index++)
scanf("%d ",&num[index]);
for(index=;index<N;index++)
{
if(index+M>=N)
item[(index+M)%N]=num[index];
else
item[index+M]=num[index];
}
for(index=;index<N;index++)
{
if(index==)
printf("%d",item[index]);
else
printf(" %d",item[index]);
}
system("pause");
return ;

2.設計思路

(1)算法

第一步:輸入兩個正整數元素個數N,右移位數M

第二步:按照順序輸入各個整數存入num[N]中

第三步:循環變量i=0

第四步:若i>=N,跳到第七步

第五步:若i+M>=N,則項item[(i+M) mod N]=num[i],否則item[i+M]=num[i]

第六步:i++,跳到第四步

第七步:輸出item[index],第二個數前輸出一個空格

(2)流程圖

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

問題:沒有考慮M比N大的情況

解決辦法:當前值的下標與M和的餘數剛好是輸出值的下標,不管M是不是N的倍數都是一樣的

Git地址:https://git.coding.net/MemoriesBook/123.git

個人總結

本週學習了一維數組和二維數組,了解了二維數組的框架結構,如同行和列的數字的排列,下標還是和一維數組一樣的0到n-1,二維數組可以存放矩陣一類的數字,還可以進行矩陣的運算以及各種變換,其中有點難懂的是選擇法排序和冒泡法排序容易搞混,現在還不是很理解選擇法排序的意思,暫時先記住格式,寫在書上。

董欣的博客地址:http://www.cnblogs.com/dx2017/p/7967269.html

董雅潔的博客地址:http://www.cnblogs.com/exo123/p/7954060.html

馮子旋的博客地址:http://www.cnblogs.com/fengzx/p/7955263.html

代碼行數 時間 博客字數 時間 涉及的知識點
200 11.20 10 4 數組
100 11.21 10 4.5 數組
100 11.22 300 2 if語句、循環結構
200 11.23 50 3 數組
100 11.24 50 1.5 數組
200 11.25 100 2.5
300 11.26 100 3 無 
300 11.27 0 2.5 二維數組 
100 11.28 0 3.5 二維數組 
200 11.29 60 5 二維數組 
100 11.30 60 1 二維數組 
300 12.1 90 2 二維數組 
300 12.2 100 1.5 二維數組 

第14、15週PTA題目的處理的更多相关文章

  1. PTA題目的處理(一)

    **題目1:A乘B** **實驗代碼** #include <stdio.h> #include <stdlib.h> int main() { signed int a,b; ...

  2. PTA題目的處理(三)

    题目7-1 高速公路超速處罰 1.實驗代碼 #include <stdio.h> //#include <stdlib.h> int main() { int csp,lsp; ...

  3. PTA題目的處理(二)

    題目7-1 計算分段函數[1] 1.實驗代碼 #include <stdio.h> int main() { float x,y; scanf("%f",&x) ...

  4. PTA题目的處理(四)

    题目7-3 求交错序列前N项和 1.实验代码 #include <stdio.h> //#include <stdlib.h> int main() { ,N; double ...

  5. js如何判断一组数字是否连续,得到一个临时数组[[3,4],[13,14,15],[17],[20],[22]];

    var arrange = function(arr){ var result = [], temp = []; arr.sort(function(source, dest){ return sou ...

  6. 第14/15讲- Android资源管理

    第14/15讲 Android资源管理 Android中的资源是指非代码部分,比如图片.MP3,字符串,XML文件等.在一个android工程中,res和assets是用来保存资源文件的. res和a ...

  7. 剑指offer19:按照从外向里以顺时针的顺序依次打印出每一个数字,4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.

    1 题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印 ...

  8. 在 Windows 上遇到非常多 TIME_WAIT 連線時應如何處理

        我們公司所代管的網站裡,有幾個流量是非常大的,在尖峰的時刻同時上線人數可能高達數千到數萬人,而在這個時候如果使用 netstat 或 TCPView 查看所有 TCP 連線時就會看到非常多處於 ...

  9. iOS/Android/Web Url Encode空格處理 原文連結:http://read01.com/3gDO.html

    iOS/Android/Web Url Encode空格處理 原文連結:http://read01.com/3gDO.html 前言 這裡只是講一個故事,一個發生在我身上的真實的故事.曾經,我以為搞加 ...

随机推荐

  1. linux iscsi配置

    iSCSI 是一种 SAN的设备而 SAN的设备主要是提供 Server 存储体的空间.相较于传统的 SAN 是以光纤为传输媒体而 iSCSI(Internet SCSI)他是 IP-based 的数 ...

  2. 基于Spring Boot的RESTful API实践(一)

    1. RESTful简述    REST是一种设计风格,是一组约束条件及原则,而遵循REST风格的架构就称为RESTful架构,资源是RESTful的核心,一个好的RESTful架构,通过URL就能很 ...

  3. Javascript设计模式(1)

    本文是学习了<JavaScript设计模式>(谢廷晟 译)做的学习笔记 一.JavaScript的灵活性 1. 普通 functon function startAnimation() { ...

  4. 【BZOJ2555】SubString(后缀自动机,Link-Cut Tree)

    [BZOJ2555]SubString(后缀自动机,Link-Cut Tree) 题面 BZOJ 题解 这题看起来不难 每次要求的就是\(right/endpos\)集合的大小 所以搞一个\(LCT\ ...

  5. 【SPOJ】Substrings(后缀自动机)

    [SPOJ]Substrings(后缀自动机) 题面 Vjudge 题意:给定一个长度为\(len\)的串,求出长度为1~len的子串中,出现最多的出现了多少次 题解 出现次数很好处理,就是\(rig ...

  6. FFT \ NTT总结(多项式的构造方法)

    前言.FFT  NTT 算法 网上有很多,这里不再赘述. 模板见我的代码库: FFT:戳我 NTT:戳我 正经向:FFT题目解题思路 \(FFT\)这个玩意不可能直接裸考的..... 其实一般\(FF ...

  7. [Luogu3377]【模板】左偏树(可并堆)

    题面戳我 题目描述 如题,一开始有N个小根堆,每个堆包含且仅包含一个数.接下来需要支持两种操作: 操作1: 1 x y 将第x个数和第y个数所在的小根堆合并(若第x或第y个数已经被删除或第x和第y个数 ...

  8. [HNOI2014]米特运输

    显然知道一个节点就可以推出整棵树 然而直接乘会爆longlong 所以考虑取log 最后排序算众数即可 # include <stdio.h> # include <stdlib.h ...

  9. [BZOJ1041] [HAOI2008] 圆上的整点 (数学)

    Description 求一个给定的圆(x^2+y^2=r^2),在圆周上有多少个点的坐标是整数. Input 只有一个正整数n,n<=2000 000 000 Output 整点个数 Samp ...

  10. 主库的wal日志已经被归档或异常丢失如何搭建从库

      关键字:wal日志归档  搭建从库 restore_command master 194.1 slave 194.4 wal归档目录 /backup/pgsql/pg_arch/ xlog目录 / ...