第三週總結

2019年春季學期第三週做業

1、本週完成的做業:

基礎做業

本週請你們完成上週挑戰做業的第一部分:給定一個整數數組(包含正負數),找到一個具備最大和的子數組,返回其最大的子數組的和。
例如:[1, -2, 3, 10, -4, 7, 2, -5]的最大子數組爲[3, 10, -4, 7, 2]
輸入:
請創建以本身英文名字命名的txt文件,並輸入數組元素數值,元素值之間用逗號分隔。
輸出
在不刪除原有文件內容的狀況下,將最大子數組以及子數組的和寫入文件。數組

1)、實驗代碼

#include<stdio.h>
#include<stdlib.h>
int main ()
{
    FILE *fp;
    int n;
    scanf ("%d\n",&n);
    int num [n];
    int max=0,sum;
    int i,j,s,k;
    if ((fp = fopen ("C:\\songguanhao.txt","r+")) == NULL) {
        printf ("File open error!\n");
        exit (0);
    }
    
    for (i=0; i<n; i++) {
        fscanf (fp,"%d,",&num [i]);
    }
    for (j=0; j<n; j++) {
        for (s=j; s<n; s++) {
            sum=0;
            for (k=j; k<=s; k++) {
                sum=sum+num [k];
            }
            if (sum>max) {
                max=sum;
            }
        }
    }
        fprintf (fp,"\n%d",max);
    if (fclose (fp)) {
        printf ("Can not close the file! \n" );
        exit (0);
    }
    return 0;
}

2)、設計思路

3)、本題調試過程碰到的問題及解決方法

以下圖,運行後文件中有最開始輸入的數據,也有最大和,只是少了最大和的子數組,這個子數組一開始我有想過
要用什麼辦法才能給輸出來,想了幾天想不出來。我就調試了一下程序,看看能在什麼地方把最大和數組數據拿出來,
調試後,發現不知如何拿。由於這個方法是把全部的子數組和都求了出來,我不知道要在什麼地方把數據提出來。學習

4)、運行結果圖

預習做業

判斷上三角矩陣
上三角矩陣指主對角線如下的元素都爲0的矩陣;主對角線爲從矩陣的左上角至右下角的連線。設計

本題要求編寫程序,判斷一個給定的方陣是否上三角矩陣。指針

輸入格式:
輸入第一行給出一個正整數T,爲待測矩陣的個數。接下來給出T個矩陣的信息:每一個矩陣信息的第一行給出一個不超過10的正整數n。隨後n行,每行給出n個整數,其間以空格分隔。調試

輸出格式:
每一個矩陣的判斷結果佔一行。若是輸入的矩陣是上三角矩陣,輸出「YES」,不然輸出「NO」。code

1)、實驗代碼

#include<stdio.h>
int main ()
{
    int i,m,n;
    scanf ("%d",&m);
    int result = 1;
    int s,k;
    for (i=0; i<m; i++) {
        scanf ("%d",&n);
        int a [n] [n];
        for (s=0; s<n; s++) {
            for (k=0; k<n; k++) {
                scanf ("%d",&a [s] [k]);
            }
        }
        for (s=1; s<n; s++) {
            for (k=0; k<s; k++) {
                if (a[s][k] != 0)  {
                result = 0;
                break;
                }
            }
        }
        if (result == 0)  {
            printf ("NO\n");
       }
        else {
            printf ("YES\n");
        }
        result = 1;
    }
    return 0;
}

2)、設計思路

3)、本題調試過程碰到的問題及解決方法

如圖,圖中代碼運行結果很明顯能夠看到是一個矩陣後接一個結果,我老是糾結原題目中是要求兩個結果一會兒
全輸出來的。因而老是在想着怎樣改才能使結果所有輸出來。我嘗試太重新定義一個數組用來存放結果,到最後的最後
一下全輸出來,但對數組的運用不是很熟練,老是搞不成。blog

4)、運行結果圖

2、學習進度條

周/日期 這周所花的時間 代碼行數 學到的知識點簡介 目前比較迷惑的問題
3/2-3/8 三天六小時 50 一、定義、運用文件指針;二、如何打開、關閉文件三、如何讀出指定文件中的數據;四、如何向指定文件中寫入數據; 字符、字符串有什麼區別?兩者輸入、輸出有沒有很大不一樣?什麼纔算字符串?什麼算字符?在文件中兩者有沒有差異?
3/9-3/15 四天三小時 180 一、運用二維數組解決問題,矩陣的判斷;二、對一組數的全部子數組求和 如何在輸出時利用數組的性質

3、學習感悟

本週雖然沒有課,但依然沒鬆懈。佈置的題目其實本身看看課本也就能懂。二維數組沒學的時候總感受有些複雜,看了書後感受也沒什麼。在作題過程當中,最讓我頭疼的就是輸出的格式,明明 pta 中要求的就是連續輸出兩個結果,我糾結半天,原來挨個輸出也可經過。還有就是另外一題目的子數組並無成功輸出,
仍是很遺憾,多是本身沒有盡力去思考,實在是.......字符串

相關文章
相關標籤/搜索