天天看點

第三周作業include<stdio.h>include<stdio.h>

7-1 判斷上三角矩陣 (15 分)

上三角矩陣指主對角線以下的元素都為0的矩陣;主對角線為從矩陣的左上角至右下角的連線。

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

輸入格式:

輸入第一行給出一個正整數T,為待測矩陣的個數。接下來給出T個矩陣的資訊:每個矩陣資訊的第一行給出一個不超過10的正整數n。随後n行,每行給出n個整數,其間以空格分隔。

輸出格式:

每個矩陣的判斷結果占一行。如果輸入的矩陣是上三角矩陣,輸出“YES”,否則輸出“NO”。

輸入樣例:

2

3

1 2 3

0 4 5

0 0 6

2

1 0

-8 2

輸出樣例:

YES

NO

1.實驗代碼

include<stdio.h>

int main ()

{

int n,i;

scanf("%d",&n);

for(i=0;i<n;i++)

{

int T,h=1;

scanf("%d",&T);

int a[921][921];

for(int x=0;x<T;x++)

{

for(int y=0;y<T;y++)

{

scanf("%d",&a[x][y]);

if(x>y&&a[x][y]!=0){

h=0;

}

}

}

if(h==1){

printf("YES\n");

}

else{

printf("NO\n");

}

}

return 0;

}

2.設計思路

第三周作業include&lt;stdio.h&gt;include&lt;stdio.h&gt;

3.本題遇到的問題及其解決辦法

問題:由于本題涉及到我們未學習的内容,是以一開始時對于整個題目的做題思路是混亂的,看書理清思路後,程式設計送出卻顯示編譯錯誤

解決方法:将編碼放入c++編譯軟體,編譯運作找出了錯誤之處并改正,再次将編碼打入pta中,卻顯示答案錯誤,得知編碼未完全符合題目條件,詢問同學後,得知錯誤之處在編碼的if從句之處,改正後答案正确

4.正确截圖

第三周作業include&lt;stdio.h&gt;include&lt;stdio.h&gt;

7-2.給定一個整數數組(包含正負數),找到一個具有最大和的子數組,傳回其最大的子數組的和。

例如:[1, -2, 3, 10, -4, 7, 2, -5]的最大子數組為[3, 10, -4, 7, 2]

輸入:

請建立以自己英文名字命名的txt檔案,并輸入數組元素數值,元素值之間用逗号分隔。

輸出

在不删除原有檔案内容的情況下,将最大子數組以及子數組的和寫入檔案。

1.實驗代碼

include<stdio.h>

int main()

{

int a[921];

int w,k,j,i;

scanf("%d",&w);

for(i=0;i<w;i++)

scanf("%d",&a[i]);

int x=0,y=0;

for(i=0;i<w;i++)

{

x+=a[i];

if(x>y){j=i;y=x;}

if(x<0){x=0;k=i+1;}

}

for(i=k;i<=j;i++){

printf("%d ",a[i]);

}

}

2.本題思路

第三周作業include&lt;stdio.h&gt;include&lt;stdio.h&gt;

3.本題遇到的問題及解決辦法

問題:剛開始做題目時,将題意了解錯誤,沒有正确了解連續組數的含義,是以做題思路也錯了,導緻整個代碼編譯錯誤

解決辦法:詢問同學,理清了思路,打好代碼編譯運作時卻得不出題目要求的答案,再次檢查,發現錯誤出在後面的for循環中,改正後正确

4.運作結果截圖

第三周作業include&lt;stdio.h&gt;include&lt;stdio.h&gt;

5.學習進度條

第三周作業include&lt;stdio.h&gt;include&lt;stdio.h&gt;

6.學習感悟:本周雖然沒有上課,但通過自己的預習,感覺還是學到了挺多東西,雖然做題時十分自閉,但把題目搞懂了還是很有成就感的,下周會繼續努力加油!

轉載于:https://www.cnblogs.com/linkedashewaixueyuan/p/10540176.html