Bài 60. Kiểm tra mảng đối xứng qua đường chéo chính và đối xứng qua đường chéo phụ | Lập trình C


Video giải thích chi tiết về Đảo ngược mảng một chiều trong lập trình C | Tự học lập trình C



Code ví dụ


#include <stdio.h>
int a[100][100];
int n;

void nhapMaTran(int x[100][100], int &n){
	do{
		printf("Nhap vao n: ");
		scanf("%d", &n);
	}while(n<=0);
	
	for(int i=0; i<n; i++){
		for(int j=0; j<n; j++){
			printf("x[%d][%d]=", i, j);
			scanf("%d", &x[i][j]);
		}
	}
}

void xuatMaTran(int x[100][100], int n){
	printf("\nMang: \n");
	for(int i=0; i<n; i++){
		for(int j=0; j<n; j++){
			printf("%d\t", a[i][j]);
		}
		printf("\n");
	}
}


/*
	1 2 3
	4 5 6
	7 8 9
	
	1 2 3 5
	2 1 4 6
	3 4 1 1
	5 6 1 1
	
	x[i][j] = x[j][i]
	x[1][2] = 4 
	x[2][1] = 4 
	
	9 2 3
	4 5 2
	7 4 9
	
	x[0][1]	= x[1][2]
	x[0][0] = x[2][2]
	x[1][0] = x[2][1]
	x[i][j] = x[n-1-j][n-1-i]
*/

int kiemTraDoiXungQuaDuongCheoChinh(int x[100][100], int n){
	for(int i=0; i<n; i++){
		for (int j=0; j<n; j++){
			if(x[i][j]!=x[j][i]){
				return 0;
			}
		}
	}
	return 1;
}
int kiemTraDoiXungQuaDuongCheoPhu(int x[100][100], int n){
	for(int i=0; i<n; i++){
		for (int j=0; j<n; j++){
			if(x[i][j]!=x[n-1-j][n-1-i]){
				return 0;
			}
		}
	}
	return 1;
}

int main(){
	nhapMaTran(a, n);
	xuatMaTran(a, n);
	printf("%s", (kiemTraDoiXungQuaDuongCheoChinh(a, n)==1?"Mang doi xung qua duong cheo chinh":"Mang khong doi xung qua duong cheo chinh"));
	printf("\n");
	printf("%s", (kiemTraDoiXungQuaDuongCheoPhu(a, n)==1?"Mang doi xung qua duong cheo phu":"Mang khong doi xung qua duong cheo phu"));
	
}




    

Bạn có thể thích những bài đăng này:

Không có nhận xét nào:

Đăng nhận xét