Chuyên đề mảng 2 chiều phần 4 docx

11 907 14
Chuyên đề mảng 2 chiều phần 4 docx

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

printf("\n\tMa tran xoan oc:\n"); XuatMaTran(MaTranXoanOc,cot,dong); getch(); } void NhapCotDong(int &cot, int &dong) { printf("Nhap so cot: "); scanf("%d", &cot); printf("Nhap so dong: "); scanf("%d", &dong); } void NhapMangThayMaTran(int Mang[],int cot,int dong) { for (int i=0, stt = 0; i<dong; i++ ) { for (int j=0; j<cot; j++) { printf("\t\t%d/ [%d][%d] = ",stt+1, i, j); scanf("%d", &Mang[stt]); stt++; } } } void XuatMangThayMaTran(int Mang[],int cot,int dong) { printf("\t \n"); for (int i=0,stt = 0; i<dong; i++) { printf("\t"); for (int j=0; j<cot; j++) { printf("%4d", Mang[stt]); stt++; } printf("\n"); } printf("\t \n"); } void SapXepMang1Chieu(int Mang[], int cot, int dong) { int temp; for (int i=0;i <(cot*dong)-1; i++) { for (int j=i+1; j<(cot*dong); j++) { if(Mang[i]>Mang[j]) { temp = Mang[i]; Mang[i]=Mang[j]; Mang[j]=temp; } } } } void ThietLapMaTranXoanOc(int Mang[],int MaTranXoanOc[][10], int cot, int dong) { int dem = 0; int i=0, j=0; int DauTien=0; int Tru=0; do { i=DauTien; for (j=i; j< cot - Tru; j++) { MaTranXoanOc[i][j] = Mang[dem]; dem++; } j ; for (i++; i< dong - Tru; i++ ) { MaTranXoanOc[i][j] = Mang[dem]; dem++; } i ; for (j ; j>=Tru; j ) { MaTranXoanOc[i][j] = Mang[dem]; dem++; } Tru++; j++; for (i ; i>=Tru; i ) { MaTranXoanOc[i][j] = Mang[dem]; dem++; } DauTien++; } while (dem!=cot*dong); } void XuatMaTran(int a[][10], int cot,int dong) { printf("\t \n"); for (int i=0; i<dong; i++) { printf("\t"); for (int j=0; j<cot; j++) { printf("%4d", a[i][j]); } printf("\n"); } printf("\t \n"); } 424 Sắp xếp các ptử theo hình ziczac #include <stdio.h> #include <conio.h> void NhapCotDong(int &cot,int &dong); void NhapMangThayMaTran(int Mang[],int cot,int dong); void XuatMangThayMaTran(int Mang[],int cot,int dong); void SapXepMang1Chieu(int Mang[], int cot, int dong); void ThietLapMaTranZicZac(int Mang[],int MaTranZicZac[][10], int cot, int dong); void XuatMaTran(int a[][10], int cot,int dong); void main() { int Mang[100]; int cot; int dong; NhapCotDong(cot,dong); NhapMangThayMaTran(Mang,cot,dong); printf("\n\tMa tran vua nhap vao: \n"); XuatMangThayMaTran(Mang,cot,dong); SapXepMang1Chieu(Mang,cot,dong); int MaTranZicZac[10][10]; ThietLapMaTranZicZac(Mang,MaTranZicZac,cot,dong); printf("\n\tMa tran Zic Zac:\n"); XuatMaTran(MaTranZicZac,cot,dong); getch(); } void NhapCotDong(int &cot, int &dong) { printf("Nhap so cot: "); scanf("%d", &cot); printf("Nhap so dong: "); scanf("%d", &dong); } void NhapMangThayMaTran(int Mang[],int cot,int dong) { for (int i=0, stt = 0; i<dong; i++ ) { for (int j=0; j<cot; j++) { printf("\t\t%d/ [%d][%d] = ",stt+1, i, j); scanf("%d", &Mang[stt]); stt++; } } } void XuatMangThayMaTran(int Mang[],int cot,int dong) { printf("\t \n"); for (int i=0,stt = 0; i<dong; i++) { printf("\t"); for (int j=0; j<cot; j++) { printf("%4d", Mang[stt]); stt++; } printf("\n"); } printf("\t \n"); } void SapXepMang1Chieu(int Mang[], int cot, int dong) { int temp; for (int i=0;i <(cot*dong)-1; i++) { for (int j=i+1; j<(cot*dong); j++) { if(Mang[i]>Mang[j]) { temp = Mang[i]; Mang[i]=Mang[j]; Mang[j]=temp; } } } } void ThietLapMaTranZicZac(int Mang[],int MaTranZicZac[][10], int cot, int dong) { int dem = 0; int i=0, j=0; do { for (i; i<dong ; i++) { MaTranZicZac[i][j] = Mang[dem]; dem++; } j++; i ; if (dem == cot*dong) { return; } for (i; i>-1; i ) { MaTranZicZac[i][j] = Mang[dem]; dem++; } i++; j++; } while (dem != cot*dong); } void XuatMaTran(int a[][10], int cot,int dong) { printf("\t \n"); for (int i=0; i<dong; i++) { printf("\t"); for (int j=0; j<cot; j++) { printf("%4d", a[i][j]); } printf("\n"); } printf("\t \n"); } 425 Xuất các giá trị âm giảm dần (ma trận ko thay đổi sau khi xuất) Xây dựng ma trận 426 Cho ma trận A.Hãy tạo ma trận B,B[i][j] = abs(A[i][j]) void XayDungB(int a[][10], int n, int m, int b[][10]) { for (int i=0; i<n; i++) { for (int j=0; j<m; j++) { b[i][j] = abs(a[i][j]); } } } 427 Cho ma trận A.Hãy tạo ma trận B,B[i][j] = lớn nhất dòng i,cột j của A int MaxTaiITaiJ(int a[][10], int n, int m,int i, int j) { int LonNhat = a[i][0]; for (int k = 1; k<m; k++) LonNhat = (LonNhat < a[i][k])?a[i][k]:LonNhat; for (k = 0; k<n; k++) LonNhat = (LonNhat < a[k][j])?a[k][j]:LonNhat; return LonNhat; } void XayDungB(int a[][10], int n, int m, int b[][10]) { for (int i=0; i<n; i++) { for (int j=0; j<m; j++) { b[i][j] = MaxTaiITaiJ(a,n,m,i,j); } } } 428 Cho ma trận A.Hãy tạo ma trận B,B[i][j] = số lượng ptử dương xung quanh A[i][j] void XayDungB(int a[][10], int cot, int dong, int b[][10]) { int dx[8]={-1,-1,-1, 0, 0, 1, 1, 1}; int dy[8]={-1, 0, 1,-1, 1,-1, 0, 1}; for (int i=0; i<dong; i++) { for (int j=0; j< cot; j++) { for (int k=0; k<8; k++) { if ((0<=dx[k]+i && dx[k]+i<dong) && (0<=dy[k]+j && dy[k]+j < cot)) { if (a[dx[k]+i][dy[k]+j]>0) { b[i][j]++; } } } } } } Chuyên đề Ma trận vuông 429 Hàm nhập ma trận vuông số nguyên 430 Hàm nhập ma trận vuông số thực 431 Hàm xuất ma trận vuông số nguyên 432 Hàm xuất ma trận vuông số thực 437 Hàm sắp xếp ma trận vuông tăng từ trên xuống dưới và từ trái sang phải void SapXep(int a[][10], int n) { for (int k=0; k<=n*n-2; k++) for (int l=k+1; l<=n*n-1; l++) if (a[k/n][k%n] > a[l/n][l%n]) { int temp = a[k/n][k%n]; a[k/n][k%n] = a[l/n][l%n]; a[l/n][l%n] = temp; } } [b]Tính toán 438 Tổng ptử thuộc ma trận tam giác trên (ko tính đường chéo) trong ma trận vuông 439 Tổng ptử thuộc ma trận tam giác dưới (ko tính đường chéo) trong ma trận vuông 440 Tổng ptử trên đường chéo chính int TongDuongCheoChinh(int a[][10], int n) { int S = 0; for (int i=0; i<n;i++) S+=a[i][i] return S; } 441 Tổng ptử trên đường chéo phụ int TongDuongCheoPhu(int a[][10], int n) { int S = 0; for (int i=0; i<n;i++) S+=a[i][n-1-i] return S; } 442 Tổng ptử chẵn nằm trên biên int TongPTuChanTrenBienMaTranVuong(int a[][100], int n) { int s=0; for (int i=0; i<n;i++) { if (a[0][i] %2 == 0) //Dòng ??u 0 s+=a[0][i]; if (a[n-1][i] %2 == 0) //Dòng cu?i n-1 s+=a[n-1][i]; if (a[i][0] %2 == 0) //C?t ??u 0 s+=a[i][0]; if (a[i][n-1] %2 == 0) //C?t cu?i n-1 s+=a[i][n-1]; } return s; } Kĩ thuật đặt lính canh 443 Tìm max trong ma trận tam giác trên 444 Tìm min trong ma trận tam giác dưới 445 Tìm max trên đường chéo chính 446 Tìm max trên đường chéo phụ 447 Tìm max nguyên tố trong ma trận int SoNguyenTo(int n) { if (n<=1) { return 0; } for (int i=2; i<n-1; i++) { if (n/i==0) { return 0; } } return 1; } int SoNguyenToDauTien(int a[][10], int n) { for (int i=0; i<n;i++) { for (int j=0; j<n; j++) { if (SoNguyenTo(a[i][j])==1 ) { return a[i][j]; } } } return 0; } int SoNguyenToMax(int a[][10], int n) { int SoNguyenToLonNhat = SoNguyenToDauTien(a,n); if (SoNguyenToLonNhat == 0) { return 0; //ko co so nguyen to } for (int i=0; i<n;i++) { for (int j=0; j<n; j++) { if (SoNguyenTo(a[i][j])==1) { SoNguyenToLonNhat=(SoNguyenToLonNhat>a[i][j])?SoNguyenToLonNhat:a[i][j]; } } } return SoNguyenToLonNhat; } 448 Tìm 2 giá trị gần nhau nhất void HaiGiaTriGanNhat(int a[][10], int n, int &X1, int &X2) { int KhoangCach = abs(a[0][0] - a[0][1]); X1 = a[0][0]; //X1 va X2 la bien can tim X2 = a[0][1]; int i; int j; for (i=0; i<n; i++) { for (j=0; j<n; j++) { if (i == n-1 && j == n-1) { break; } for (int k=i; k<n;k++) { for (int h=0; h<n; h++ ) { if (k==i && h<=j) { continue; } if (KhoangCach > abs(a[i][j] - a[k][h])) { KhoangCach = abs(a[i][j] - a[k][h]); X1 = a[i][j]; X2 = a[k][h]; } } } } } } 449 * Cho ma trận vuông A(n x n). Hãy tìm ma trận vuông B(k x k) sao cho tổng các giá trị trên ma trận vuông này là lớn nhất Kĩ thuật đếm 450 Đếm số lượng cặp giá trị đối xứng nhau wa đường chéo chính int DemCapGiaTriDoiXung(int a[][10], int n) { int dem = 0; for (int i=1; i<n;i++) for (int j=0; j<i; j++) if (a[i][j]==a[j][i]) dem++; return dem; } 451 ??m s? l??ng dòng gi?m int KtraDongGiam(int a[], int n) { for (int i=0; i<n-1; i++) { if (a[i]<a[i+1]) { return 0; } } return 1; } int DemSoLuong(int a[][10], int n) { int dem = 0; for (int i=0; i<n;i++) { if (KtraDongGiam(a[i],n)==1) { dem++; } } return dem; } 452 Đếm ptử cực đại int SoLuongPTuCucDai(int a[][10], int n) { int dem=0; int di[8] = {-1,-1,-1,0,0,1,1,1}; int dj[8] = {-1,0,1,-1,1,-1,0,1}; for (int i=0; i<n;i++) { for (int j=0; j<n; j++) { int flag =1; for (int k=0; k<8; k++) { if (i+di[k]>=0 && i+di[k]<=n-1 && j+dj[k]>=0 && j+dj[k]<=n-1) { if (a[i+di[k]][j+dj[k]]>a[i][j]) { flag = 0; break; } } } if (flag == 1) { dem++; } } } return dem; } 453 Đếm giá trị dương trên đường chéo chính int SoLuongDuongCheoChinh(int a[][10], int n) { int dem=0; for (int i=0; i<n;i++) { if (a[i][i]>0) { dem++; } } return dem; } 454 Đếm số âm trên đường chéo phụ int SoLuongAm(int a[][10], int n) { int dem = 0; for (int i=0; i<n;i++) if (a[i][n-1-i]<0) dem++; return dem; } 455 Đếm số chẵn trong ma trận tam giác trên Kĩ thuật đặt cờ hiệu 456 Ktra đường chéo chính có tăng dần hay ko? 457 Ktra ma trận có đối xứng wa chéo chính ko? 458 ktra ma trận có đối xứng wa chéo phụ ko? 459 Ktra ma trận có phải là ma phương ko? Ma phương là khi tổng ptử trên các dòng, cột và 2 chéo chính phụ bằng nhau Sắp xếp 460 Sắp chéo chính tăng dần 461 Sắp chéo phụ giảm dần 462 Hoán vị 2 dòng 463 Hoán vị 2 cột 464 sắp các dòng tăng dần theo tổng dòng 465 Đưa chẵn về đầu ma trận vuông 466 * Ma trận vuông A(n x n) với n >=3. Sắp tam giác trên tăng dần từ trên xuống dưới và từ trái sang phải 467 * Ma trận vuông A với n>=3. Sắp tam giác dưới giảm dần từ trên xuống dưới và từ trái sang phải 468 * Xây dựng ma phương A Các phép toán trên ma trận 469 Tổng 2 ma trận void Tong2MaTran(int a[][], int b[][], int c[][], int n, int m) { for (int i=0; i<n; i++) { [...]... int T = 0; for (int k=0 ; k . thuật đặt lính canh 44 3 Tìm max trong ma trận tam giác trên 44 4 Tìm min trong ma trận tam giác dưới 44 5 Tìm max trên đường chéo chính 44 6 Tìm max trên đường chéo phụ 44 7 Tìm max nguyên tố. cột và 2 chéo chính phụ bằng nhau Sắp xếp 46 0 Sắp chéo chính tăng dần 46 1 Sắp chéo phụ giảm dần 4 62 Hoán vị 2 dòng 46 3 Hoán vị 2 cột 46 4 sắp các dòng tăng dần theo tổng dòng 46 5 Đưa. } } Chuyên đề Ma trận vuông 42 9 Hàm nhập ma trận vuông số nguyên 43 0 Hàm nhập ma trận vuông số thực 43 1 Hàm xuất ma trận vuông số nguyên 4 32 Hàm xuất ma trận vuông số thực 43 7 Hàm

Ngày đăng: 29/07/2014, 21:20

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan