1. 程式人生 > >第14、15教學周作業

第14、15教學周作業

printf 編程 es2017 n-1 net 理解 粘貼 註意 以及

要求二:

第14周第一次作業:7-3將數組中的數逆序存放:

1.實驗代碼:

#include<stdio.h>

int main()
{
    int i, n, swap, a[10];
    scanf("%d", &n);
    for (i = 0; i < n; i++)
        scanf("%d", &a[i]);
    for (i = 0; i < n/2 ;i++)
    {
        swap = a[i];
        a[i] =a[n-1-i];
        a[n-1-i] = swap;
    }
    
for (i = 0; i < n-1; i++) printf("%d ", a[i]); printf("%d\n", a[n-1]); return 0; }

2.設計思路:(1)第一步:引入數組啊a[n],以及循環增量i,數組存放的個數n和交換變量swap;

第二步:給這個數組賦值;

第三步:利用交換變量swap進行交換;

第四步:輸出結果;

(2)流程圖:

技術分享圖片

3.遇到的問題:①起初在這個問題上在編譯上沒有問題,只是在格式上出現問題,即對行末不出現空格的輸出不會,導致出現錯誤。

技術分享圖片

解決方法:我是通過上網百度找到的解決方法,通過先按如上的樣式輸出從i=0到i=n-2,在單個的輸出i=n-1是的值;

7-4 fibonacci數列:

1.實驗代碼:

#include <stdio.h>
int main()
{  
    int i;
    int f[12] = {1, 1};   

    for ( i = 2; i < 12; i++ ) 
    {
        f[i] = f[i - 1] + f[i - 2
]; } for ( i = 0; i < 12; i++ ){ printf ( "%6d", f[i] ); if ( (i + 1) % 3 == 0 ) { printf("\n"); } } return 0; }

2.設計思路:(1)第一步:首先引入數組f[12],循環增量i,並賦給數組f[12]的前兩個值為1;

第二步:根據題意來求新的數組;

第三步:輸出這個新數組;

(2)流程圖:

技術分享圖片

3.遇到的問題:①本題老師上課講過,本題也不是不會編程,就是提交的時候有格式錯誤,之後按照老師給的原代碼打也是出現格式錯誤;

技術分享圖片

解決辦法:先把老師的原代碼直接復制粘貼在Dev-C++上,之後再根據題目要求進行修改才解決;

第15周第一次PTA作業 7-4數組元素循環右移問題:

1.實驗代碼:

#include<stdio.h>
int main()
{
    const int N=100;
    int a[N];
    int i=0,m=0,n=0;
    scanf("%d %d",&n,&m);
    for(i=0;i<n;i++)
    {
        scanf("%d",&a[i]);
    }
    if(m<n)
    {
        for(i=(n-m);i<=(n-1);i++)
        {
            printf("%d ",a[i]);
        }
        for(i=0;i<(n-m-1);i++)
        {
            printf("%d ",a[i]);
        }
        printf("%d",a[n-m-1]);
    }else if(m>=n)
    {
        m=m%n;
        if(m==0)
        {
            for(i=0;i<n-1;i++)
            {
                printf("%d ",a[i]);
            }
            printf("%d",a[n-1]);
        }else if(m!=0)
        {
            for(i=(n-m);i<=(n-1);i++)
            {
                printf("%d ",a[i]);
            }
            for(i=0;i<(n-m-1);i++)
            {
                printf("%d ",a[i]);
            }
            printf("%d",a[n-m-1]);
        }
    }
}

2.設計思路:(1)第一步:首先先定義一個數組a[N],以及循環增量i和要輸入的格式n和m;

第二步:根據題意先給這個數組賦值;

第三步:根據題意要使數組的元素右移,首先要分情況討論來判斷元素右移的個數,並註意結尾不能出現空格的情況;

第四步:以此由不同的情況來輸出結果;

(2)流程圖:

技術分享圖片

技術分享圖片

註:因流程圖太大,一個屏截不下來,所以我就截了兩個屏,有點錯位,望老師見諒!

3.遇到的問題:①考慮問題不全面,導致提交總是部分錯誤;由截圖可看出我起初只是考慮了m<n的一種情況;

錯誤代碼截圖:

技術分享圖片

解決辦法:①通過上網查了這個題的答案,從網上的各位大佬的答案來看我深刻的理解了這個題的題意,之後多加了幾種情況就解決了問題,雖然代碼很長,不想網上的大佬的那樣簡短,但我覺得我的還是簡單易懂的;

要求三:

上傳Git截圖:技術分享圖片

Git地址:https://git.coding.net/GBL/ZY.git

要求四:

(1)學到的內容:本周我學到了數組的一些規律;例如:冒泡排序,選擇法排序,還有一些數組的簡單賦值;

(2)難點:數組的冒泡排序、選擇法排序的控制條件有時不能很快的想出,還有一些PTA上的結尾不出現空格,以及換行的要求等等都不太熟;

要求五:

1.點評的三位同學:

邀請點評的三位同學:

2.本周的學習進度:

技術分享圖片

技術分享圖片

第14、15教學周作業