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
代碼
#include <stdio.h>
int main() {
int T,n,i,j,k;
int a[10][10];
scanf("%d",&T);
int count=0;
int record[100]={0};
for(k=0; k<T; k++){
scanf("%d",&n);
for(i=0; i<n; i++){
for(j=0; j<n; j++){
scanf("%d",&a[i][j]);
}
}
for(i=0; i<n; i++){
for(j=0; j<n; j++){
if(i>j && a[i][j] != 0){
count++;
}
}
}
if(count==0 )
record[k] = 1;
else
record[k] = 0;
count=0;
}
for(k=0; k<T; k++){
if(record[k]==1)
printf("YES\n");
else
printf("NO\n");
}
return 0;
}
思路
(注意:每次要將count的值回歸到0,否則將影響后續判斷,與什么時候鍵入int語句無關!)
本題調試過程碰到問題及解決辦法位置混亂
1.出現的段錯誤是for循環的括號所引起的,檢查就可看出,
2.出現的答案錯誤在dev-c++中運行出來無法識別第二個矩陣,自己調試,應該使用返回值來進行判斷
學習進度條