網(wǎng)站設計制作案例互聯(lián)網(wǎng)推廣引流是做什么的
1. 題目描述——BC106 上三角矩陣判定
??途W(wǎng)OJ題鏈接
描述
KiKi想知道一個n階方矩是否為上三角矩陣,請幫他編程判定。上三角矩陣即主對角線以下的元素都為0的矩陣,主對角線為從矩陣的左上角至右下角的連線。
示例
輸入:
3
1 2 3
0 4 5
0 0 6
輸出:YES
2. 思路
3. 代碼實現(xiàn)
#include<stdio.h>
int main()
{int n = 0;scanf("%d", &n);int i = 0,j = 0;int arr[10][10] = { 0 };for (i = 0; i < n; i++){for (j = 0; j < n; j++){scanf("%d", &arr[i][j]);}}int k = 0;int t = 0;int flag = 1;for (k = 0; k < n; k++){for (t = 0; t < k; t++){if (arr[k][t] != 0){flag = 0;}}}if (flag == 1){printf("YES\n");}else{printf("NO\n");}return 0;
4. 代碼實現(xiàn)2
這個加入了goto 語句,因為如果我們已經(jīng)判斷不等于0,就不需要判斷剩余的了
#include<stdio.h>
int main() {int n = 0;scanf("%d", &n);int i = 0, j = 0;int arr[10][10] = { 0 };for (i = 0; i < n; i++) {for (j = 0; j < n; j++) {scanf("%d", &arr[i][j]);}}int k = 0;int t = 0;int flag = 1;for (k = 0; k < n; k++) {for (t = 0; t < k; t++) {if (arr[k][t] != 0) {flag = 0;goto end;}}}
end:if (flag == 1) {printf("YES\n");} else {printf("NO\n");}return 0;
}
5.代碼實現(xiàn)3
我們也可以不使用goto,當判斷我們有值不等于0的時候,直接打印NO,然后return。
#include<stdio.h>
int main() {int n = 0;scanf("%d", &n);int i = 0, j = 0;int arr[10][10] = { 0 };for (i = 0; i < n; i++) {for (j = 0; j < n; j++) {scanf("%d", &arr[i][j]);}}int k = 0;int t = 0;for (k = 0; k < n; k++) {for (t = 0; t < k; t++) {if (arr[k][t] != 0) {printf("NO\n");return 0;}}}printf("YES\n");return 0;
}
6. 代碼實現(xiàn)4,其實并不需要再創(chuàng)建兩個循環(huán)變量,都使用i和j是沒問題的,因為我們會給i,j重新賦值為0
#include<stdio.h>
int main() {int n = 0;scanf("%d", &n);int i = 0, j = 0;int arr[10][10] = { 0 };for (i = 0; i < n; i++) {for (j = 0; j < n; j++) {scanf("%d", &arr[i][j]);}}for (i = 0; i < n; i++) {for (j = 0; j < i; j++) {if (arr[i][j] != 0) {printf("NO\n");return 0;}}}printf("YES\n");return 0;
}