1. 程式人生 > >C部落格作業04--陣列

C部落格作業04--陣列

1. 本章學習總結

1.1 思維導圖

1.2 本章學習體會及程式碼量學習體會

1.2.1 學習體會

這幾周學習了陣列,一維陣列,二維陣列,字元陣列,前一個題集還沒做完,後一個題集就又釋出了,當場去世,可能因為題目難度也在增加,然後有些懶,題目一直放著沒有好好去做,都是等老師講完有了思路,再根據老師的思路把程式碼打一遍。這一點自我檢討一下。學習了陣列,並且學了幾種排序方法,之前的一些題目也可以改用陣列的方法來做。感覺陣列有些題目有思路做起來,也有點懵懵的,不能一遍過,都需要除錯一下才知道自己的問題出在哪。陣列這塊的內容還是很重要的,所以我應該要把知識盲區都弄懂,並且累計一些做題思路。而且題集也不能一拖再拖了,遇到難題也不應該是躲避了,希望在接下去的時間裡,我可以把它們全解決掉。

1.2.2 程式碼累計

2. PTA總分

2.1 截圖PTA中陣列題目集的排名得分

2.2 我的總分:

3. PTA實驗作業

3.1 PTA題目1

陣列迴圈左移 
本題要求實現一個對陣列進行迴圈左移的簡單函式:
一個數組a中存有n(>0)個整數,在不允許使用另外陣列的前提下,將每個整數迴圈向左移m(≥0)個位置

3.1.1 演算法分析

定義i,j,n,m,temp
輸入n,m
輸入n個數存入陣列a
for i=0 to m do
    temp=a[0]
    for j=0 to n-1 do
        a[j]=a[j+1]
    a[n-1]=temp
    end for
end for
按照要求格式輸出

3.1.2 程式碼截圖

#include<stdio.h>
int main()
{
    int n,m,i,j,temp;
    scanf("%d%d",&n,&m);
    int a[n];
    for(i=0;i<n;i++)
        scanf("%d",&a[i]);
    for(i=0;i<m;i++)//左移次數
    {
        temp=a[0];//先用temp儲存a[0]
        for(j=0;j<n-1;j++)
            a[j]=a[j+1];//各數往前移
      a[n-1]=temp;//將a[0]放到最後一位
    }
    for(i=0;i<n;i++)
    {
        if(i<n-1)
            printf("%d ",a[i]);
        else
            printf("%d",a[i]);
    }
    return 0;
}

3.1.3 測試資料

3.1.4 PTA提交列表及說明

Q1:剛開始做,挺有思路的但是感覺程式碼質量很差,而且有一兩個點一直過不了
A1:後來老師在課上講了這題,瞬間有種頓悟的感覺,好方法就要累積下來

3.2 PTA題目2

3.2.1 演算法分析

3.2.2 程式碼

3.2.3 測試資料

3.2.4 PTA提交列表及說明

Q1:
A1:
A2:

3.3 PTA題目3

3.3.1 演算法分析

3.3.2 程式碼

3.3.3 測試資料

3.3.4 PTA提交列表及說明

Q1:
A1:
A2:

4. 程式碼互評

4.1 程式碼截圖

同學程式碼

我的程式碼

4.2 兩者的不同

1.整體思路不同:
2.關係式不同:
3.