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.設計思路

3.本題遇到的問題及其解決辦法
問題:由于本題涉及到我們未學習的内容,是以一開始時對于整個題目的做題思路是混亂的,看書理清思路後,程式設計送出卻顯示編譯錯誤
解決方法:将編碼放入c++編譯軟體,編譯運作找出了錯誤之處并改正,再次将編碼打入pta中,卻顯示答案錯誤,得知編碼未完全符合題目條件,詢問同學後,得知錯誤之處在編碼的if從句之處,改正後答案正确
4.正确截圖
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.本題思路
3.本題遇到的問題及解決辦法
問題:剛開始做題目時,将題意了解錯誤,沒有正确了解連續組數的含義,是以做題思路也錯了,導緻整個代碼編譯錯誤
解決辦法:詢問同學,理清了思路,打好代碼編譯運作時卻得不出題目要求的答案,再次檢查,發現錯誤出在後面的for循環中,改正後正确
4.運作結果截圖
5.學習進度條
6.學習感悟:本周雖然沒有上課,但通過自己的預習,感覺還是學到了挺多東西,雖然做題時十分自閉,但把題目搞懂了還是很有成就感的,下周會繼續努力加油!
轉載于:https://www.cnblogs.com/linkedashewaixueyuan/p/10540176.html