mang 2 chieu-1

Hàm nhập & xuất ma trận các số nguyên void nhap(int a[][100],int &m,int &n)

{

MA TRẬN

printf("Nhap m:"); scanf("%d",&m); printf("Nhap n:"); scanf("%d",&n); for(int i=0;i<m;i++)

for(int j=0;j<n;j++)

{

printf("Nhap a[%d][%d]:",i,j);

scanf("%d",&a[i],[j]);

}

}

void xuat(int a[][100],int m,int n)

{

for(int i=0;i<m;i++)

{

for(int j=0;j<n;j++)

printf("%4d",a[i][j]);

printf("

");

}

}

Hàm nhập & xuất ma trận các số thực

void nhap(float a[][100],int &m,int &n)

{

printf("Nhap m :"); scanf("%d",&m); printf("Nhap n :"); scanf("%d",&n); for(int i=0;i<m;i++)

for(int j=0;j<n;j++)

{

printf("Nhap a[%d][%d]:",i,j);

scanf("%f",&a[i],[j]);

}

}

void xuat(float a[][100],int m,int n)

{

for(int i=0;i<m;i++)

{

for(int j=0;j<n;j++)

printf("%8.3f",a[i][j]);

printf("

");

}

}

Hàm nhập & xuất ma trận các số nguyên dài

void nhap(long a[][100],int &m,int &n)

{

printf("Nhap m :"); scanf("%d",&m); printf("Nhap n:"); scanf("%d",&n); for(int i=0;i<m;i++)

for(int j=0;j<n;j++)

{

printf("Nhap a[%d][%d]",i,j);

scanf("%ld",&a[i][j]);

}

}

void xuat(long a[][100],int m,int n)

{

for(int i=0;i<m;i++)

{

for(int j=0;j<n;j++)

printf("%ld",a[i][j]);

printf("

");

}

}

Hàm nhập & xuất ma trận các số thực dài

void nhap(double a[][100],int &m,int &n);

{

printf("Nhap m :"); scanf("%d",&m); prinf("Nhap n :"); scanf("%d",&n); for(int i=0;i<m;i++)

for(int j=0;j<n;j++)

{

printf("Nhap a[%d][%d]",i,j);

scanf("%lf",&a[i][j]);

}

}

void xuat(double a[][100],int m,int n)

{

for(int i=0;i<m;i++)

{

for(int j=0;j<n;j++)

printf("%lf",a[i][j]);

printf("

");

}

}

Kĩ thuật tính toán

Chuyên đề về ma trận thường

320 Tổng các số dương trong ma trận thực int TongSoDuong(int a[][100], int n, int m)

{

int s=0;

for (int i=0; i<n; i++)

for (int j=0; j<m; j++)

if (a[i][j]>0)

s+=a[i][j];

return s;

}

321 Tích các số lẻ trong ma trận nguyên

int TichGiaTriLe(int a[][100], int n, int m)

{

int t=1;

for (int i=0; i<n; i++)

for (int j=0; j<m; j++)

if (a[i][j]%2!=0)

t*=a[i][j];

return t;

}

322 Tổng giá trị trên 1 dòng ma trận thực

int TongDongX(float *a, int m) //chuy?n a[x] , x là dòng mà b?n c?n tính t?ng

{

int S=0;

for (int i=0; i<m; i++) S+=a[i];

return S;

}

323 Tích giá trị dương trên 1 cột ma trận thực

float TichDuongCotY(float a[][100], int n, int m, int y) //y là s? c?t c?n tính

{

float T=1;

for (int i=0; i<n; i++)

if (a[i][y]>0) T*=a[i][y];

return T;

}

324 Tổng giá trị dương trên 1 dòng ma trận thực int TongDuongDongX(float *a, int m)

//chuy?n a[x] , x là dòng mà b?n c?n tính t?ng

{

int S=0;

for (int i=0; i<m; i++)

{

if (a[i]>0) S+=a[i];

}

return S;

}

325 Tích các chẵn trên 1 cột ma trận nguyên

int TichChanCotY(int a[][100], int n, int m, int y) //y là s? c?t c?n tính

{

int T=1;

for (int i=0; i<n; i++)

if (a[i][y]%2 = =0)

T*=a[i][y];

return T;

}

326 Trung bình cộng các số dương ma trận thực float TBCongDuong(float a[][100], int n, int m)

{

int S=0;

int dem =0 ;

for (int i=0; i<n; i++)

{

for (int j=0; j<m; j++)

{

if (a[i][j]>0)

{

S+=a[i][j];

dem++;

}

}

}

return (float)(S/dem);

}

327 Tổng các giá trị nằm trên biên của ma trận int TongBien(int a[][100], int n, int m)

{

int S=0;

for (int i=0; i<m; i++)

{

S = S+ a[0][i] + a[n-1][i];

}

for (i=1; i<n-1; i++)

{

S = S+ a[i][0] + a[i][m-1];

}

return S;

}

328 Trung bình nhân các số dương ma trận thực float TBNhanDuong(float **a, int n, int m)

{

float T=1;

int dem =0 ;

for (int i=0; i<n; i++)

{

for (int j=0; j<m; j++)

{

if (a[i][j]>0)

{

T*=a[i][j];

dem++;

}

}

}

return pow(T,1.0/dem);

}

329 Biến đổi ma trận bằng cách thay các giá trị âm bằng giá trị tuyệt đối của nó

void BienDoiMaTran(int a[][100], int n, int m)

{

for (int i=0; i<n; i++)

for (int j=0; j<m; j++)

a[i][j] = abs(a[i][j]);

}

330 Biến đổi ma trận thực bằng cách thay các giá trị bằng giá trị nguyên gần nó nhất float XuLy(float n)

{

float PhanNguyen = (int)(n); float PhanLe = n - PhanNguyen; if (PhanLe < 0,5)

{

return PhanNguyen;

}

return PhanNguyen+1;

}

void BienDoiMaTran(float a[][100], int dong, int cot)

{

for (int i=0;i<dong; i++)

{

for (int j=0; j<cot; j++)

{

a[i][j] = XuLy(a[i][j]);

}

}

}

331 Tổng các giá trị trên 1 dòng ma trận thực

float TongDongX(int a[], int m) //chuy?n a[x] , x là dòng mà b?n c?n tính t?ng

{

float S=0;

for (int i=0; i<m; i++) S+=a[i];

return S;

}

332 Tổng giá trị lẻ trên 1 cột ma trận nguyên

int TongLeCotY(int a[][100], int n, int m, int y) //y là s? c?t c?n tính

{

int S=0;

for (int i=0; i<n; i++)

if (a[i][y]%2 ! =0) S+=a[i][y];

return S;

}

333 Tổng các số hoàn thiện trong ma trân số nguyên int sohoanthien(int n)

{

int tong=0;

for (int i=1 ; i<n; i++)

if(n%i==0)

tong = tong + i;

if (tong == n)

return 1;

return 0;

}

int TongSoHoanThien(int a[][100],int n, int m)

{

int S=0;

for (int i=0;i<dong; i++)

for (int j=0; j<cot; j++)

if (SoHoanThien(a[i][j])==1) S+=a[i][j];

return S;

}

Kĩ thuật đếm

334 Viết hàm đếm số lượng số dương trong ma trận thực int DemDuong(float a[][100], int dong, int cot)

{

int dem=0;

for (int i=0;i<dong; i++)

for (int j=0; j<cot; j++)

if (a[i][j]>0)

dem++;

return dem;

}

335 Đếm số lượng số ng tố trong ma trận nguyên int SoNguyenTo(int n)

{

if (n<=1)

return 0;

for (int i=2; i<n; i++)

if (n%i==0)

return 0;

return 1;

}

int DemSoNguyenTo(int a[][100], int dong, int cot)

{

int dem=0;

for (int i=0;i<dong; i++)

for (int j=0; j<cot; j++)

if (SoNguyenTo(a[i][j])==1)

dem++;

return dem;

}

336 Đếm tần suất xuất hiện của 1 giá trị x trong ma trận thực int DemGiaTriX(float a[][100], int dong, int cot, float x)

{

int dem=0;

for (int i=0;i<dong; i++)

for (int j=0; j<cot; j++)

if (a[i][j]==x)

dem++;

return dem;

}

337 Đếm số chữ số trong ma trận số nguyên dương

int DemTungSo(int n)

{

int dem = 1;

n = abs(n);

while (n>=10)

{

n= n/10;

dem++;

}

return dem;

}

int Dem(int a[][100], int dong, int cot)

{

int dem = 0;

for (int i=0;i<dong; i++)

{

for (int j=0; j<cot; j++)

{

dem += DemTungSo(a[i][j]);

}

}

return dem;

}

338 Đếm số lượng số dương trên 1 hàng ma trận thực int DemDuong(float a[][100], int cot, int HangCanTinh)

{

int dem=0;

for (int j=0; j<cot; j++)

if (a[HangCanTinh][j]>0)

dem++;

return dem;

}339 Đếm số lượng số hoàn thiện trên 1 hàng ma trận nguyên int SoHoanThien(int n)

{

if (n<=0)

return 0;

int s=0;

for (int i=1;i<n;i++) if (n%i==0) s+=i;

if (s==n)

return 1;

return 0;

}

int DemSoHoanThien(int a[][100], int cot, int HangCanTinh)

{

int dem=0;

for (int j=0; j<cot; j++)

if (SoHoanThien(a[HangCanTinh][j])==1)

dem++;

return dem;

}

340 Đếm số lượng âm trên 1 cột ma trận thực

int DemSoDuong(float a[][100], int dong, int CotCanTinh)

{

int dem=0;

for (int i=0; i<dong; i++)

if (a[i][CotCanTinh]<0)

dem++;

return dem;

}

341 Đếm số lượng dương trên biên của ma trận thực int DemSoDuong(float a[][100], int dong, int Cot)

{

int dem=0;

for (int j=0; j<Cot; j++)

{

if (a[0][j]>0)

dem++;

if (a[dong-1][j]>0)

dem++;

}

for (int i=1; i<dong-1; i++)

{

if (a[i][0]>0)

dem++;

if (a[i][Cot-1]>0)

dem++;

}

return dem;

}

342 Đếm số lượng ptử cực đại ma trận thực. 1 ptử cực đại là khi nó lớn hơn các ptử xung quanh int CucDai(float a[][100],int dong,int cot, int i, int j)

{

int dx[8]={-1,-1,-1, 0, 0, 1, 1, 1}; int dy[8]={-1, 0, 1,-1, 1,-1, 0, 1}; 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[i][j]<a[dx[k]+i][dy[k]+j])

{

return 0;

}

}

}

return 1;

}

int DemCucDai(float a[][100], int dong, int cot)

{

int dem=0;

for (int i=0;i<dong; i++)

{

for (int j=0; j<cot; j++)

{

if (CucDai(a,dong,cot,i,j)==1)

{

printf("

a[%d][%d] = %d",i,j,a[i][j]);

dem++;

}

}

}

return dem;

}

343 Đếm số lượng ptử cực trị ma trận thực.1 ptử cực trị khi nó lớn hơn hoặc nhỏ hơn ptử xung quanh int CucTri(float a[][100],int dong,int cot, int i, int j)

{

int dx[8]={-1,-1,-1, 0, 0, 1, 1, 1}; int dy[8]={-1, 0, 1,-1, 1,-1, 0, 1}; 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[i][j]<a[dx[k]+i][dy[k]+j])

{

for (k=k+1; k<8; k++)

{

if ((0<=dx[k]+i && dx[k]+i<dong) && (0<=dy[k]+j && dy[k]+j < cot))

{

if (a[i][j]>a[dx[k]+i][dy[k]+j])

{

}

}

else

{

return 0;

}

}

for (k=k+1; k<8; k++)

{

if ((0<=dx[k]+i && dx[k]+i<dong) && (0<=dy[k]+j && dy[k]+j < cot))

{

if (a[i][j]<a[dx[k]+i][dy[k]+j])

{

return 0;

}

}

}

}

}

}

return 1;

}

int DemCucTri(float a[][100], int dong, int cot)

{

int dem=0;

for (int i=0;i<dong; i++)

{

for (int j=0; j<cot; j++)

{

if (CucTri(a,dong,cot,i,j)==1)

{

dem++;

}

}

}

return dem;

}

344 Đếm số lượng giá trị có trong ma trận thực. Lưu ý: nếu có k ptử (k>=1) trong ma trận bằng nhau thì ta chỉ tính là 1

int Xet(float a[][100], int dong,int cot, int i, int j)

{

int k, h; //k: dong, h: cot for (h=j+1; h<cot; h++)

{

if (a[i][h] == a[i][j])

{

return 0;

}

}

for (k=i+1; k<dong; k++)

{

for (h=0; h<cot; h++)

{

if (a[k][h] == a[i][j])

{

return 0;

}

}

}

return 1;

}

int DemPtu(float a[][100],int dong,int cot)

{

int dem=0;

for (int i=0; i<dong; i++)

{

for (int j=0; j<cot; j++)

{

if (Xet(a,dong,cot,i,j)==1)

{

dem++;

}

}

}

return dem;

}

345 Tính tổng các ptử cực trị trong ma trận thực

int CucTri(float a[][100],int dong,int cot, int i, int j)

{

int dx[8]={-1,-1,-1, 0, 0, 1, 1, 1}; int dy[8]={-1, 0, 1,-1, 1,-1, 0, 1}; 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[i][j]<a[dx[k]+i][dy[k]+j])

{

for (k=k+1; k<8; k++)

{

if ((0<=dx[k]+i && dx[k]+i<dong) && (0<=dy[k]+j && dy[k]+j < cot))

{

if (a[i][j]>a[dx[k]+i][dy[k]+j])

{

}

}

else

{

return 0;

}

}

for (k=k+1; k<8; k++)

{

if ((0<=dx[k]+i && dx[k]+i<dong) && (0<=dy[k]+j && dy[k]+j < cot))

{

if (a[i][j]<a[dx[k]+i][dy[k]+j])

{

return 0;

}

}

}

}

}

}

return 1;

}

int TongCucTri(float a[][100], int dong, int cot)

{

int S=0;

for (int i=0;i<dong; i++)

{

for (int j=0; j<cot; j++)

{

if (CucTri(a,dong,cot,i,j)==1)

{

S+=a[i][j];

}

}

}

return S;

}

346 Đếm số lượng giá trị "hoàng hậu" trên ma trận. 1 ptử hoàng hậu khi nó lớn nhất trên dòng, cột và 2 đường chéo int XetDuongCheo(int a[][100],int dong,int cot, int i, int j)

{

int k,h; //k : dong, h : cot

for (k=i,h=j; k>=0 && h<cot; k--, h++)

{

if (a[k][h] > a[i][j])

{

return 0;

}

}

for (k=i+1, h=j-1; k<dong && h>=0; k++, h--)

{

if (a[k][h] > a[i][j])

{

return 0;

}

}

for (k=i-1, h =j-1; k>=0 && h>=0; k--,h--)

{

if (a[k][h] > a[i][j])

{

return 0;

}

}

for (k=i+1, h=j+1; k<dong && h<cot; k++, h++)

{

if (a[k][h] > a[i][j])

{

return 0;

}

}

return 1;

}

int XetCotDong(int a[][100],int dong,int cot, int i, int j)

{

for (int k=0; k<dong; k++ )

{

if (a[k][j]>a[i][j])

{

return 0;

}

}

for (k=0; k<cot; k++ )

{

if (a[i][k]>a[i][j])

{

return 0;

}

}

return 1;

}

int XetTongQuat(int a[][100],int dong,int cot, int i, int j)

{

if (XetCotDong(a,dong,cot,i,j)==1)

if (XetDuongCheo(a,dong,cot,i,j)==1)

return 1;

else

return 0;

return 0;

}

int DemHoangHau(int a[][100], int dong,int cot)

{

int dem=0;

for (int i=0; i<dong; i++)

{

for (int j=0; j<cot; j++)

{

if (XetTongQuat(a,dong,cot,i,j) == 1) //la hoang hau

{

dem ++;

}

}

}

return dem;

}

347 Đếm số lượng "yên ngựa".1 ptử yên ngựa khi nó lớn nhất trên dòng, nhỏ nhất trên cột int XetCotDong(int a[][100],int dong,int cot, int i, int j)

{

for (int k=0; k<dong; k++ )

{

if (a[k][j]<a[i][j])

{

return 0;

}

}

for (k=0; k<cot; k++ )

{

if (a[i][k]>a[i][j])

{

return 0;

}

}

return 1;

}

int DemYenNgua(int a[][100], int dong,int cot)

{

int dem=0;

for (int i=0; i<dong; i++)

{

for (int j=0; j<cot; j++)

{

if (XetCotDong(a,dong,cot,i,j) == 1)

{

dem ++;

}

}

}

return dem;

}

Kĩ thuật Đặt Cờ Hiệu

348 Ktra ma trận có số dương ko

int Ktra(int a[][100],int dong,int cot)

{

int flag = 0;

for (int i=0; i<dong; i++)

{

for (int j=0;j<cot;j++)

{

if (a[i][j]>0)

{

flag=1;

break;

}

}

}

return flag;

}

349 Ktra ma trận có số hoàn thiện ko int sohoanthien(int n)

{

int tong=0;

for (int i=1 ; i<n; i++)

if(n%i==0)

tong = tong + i;

if (tong == n)

return 1;

return 0;

}

int Ktra(int a[][100],int dong,int cot)

{

int flag = 0;

for (int i=0; i<dong; i++)

{

for (int j=0;j<cot;j++)

{

if (sohoanthien(a[i][j])==1)

{

flag=1;

break;

}

}

}

return flag;

}

350 Ktra ma trận có số lẻ ko

int Ktra(int a[][100],int dong,int cot)

{

int flag = 0;

for (int i=0; i<dong; i++)

{

for (int j=0;j<cot;j++)

{

if (a[i][j]%2!=0)

{

flag=1;

break;

}

}

}

return flag;

}

351 Ktra ma trận có toàn dương ko

int Ktra(int a[][100],int dong,int cot)

{

int flag = 1;

for (int i=0; i<dong; i++)

{

for (int j=0;j<cot;j++)

{

if (a[i][j]<0)

{

flag=0;

break;

}

}

}

return flag;

}

352 Ktra 1 hàng ma trận có tăng dần hay ko

int Ktra(int a[][100],int dong,int cot, int DongCanTinh)

{

int flag = 1; //coi nh? dòng t?ng for (int j=0;j<cot-1;j++)

{

if (a[DongCanTinh][j]>a[DongCanTinh][j+1])

{

flag=0; //dòng ko t?ng break;

}

}

return flag;

}

353 Ktra 1 cột ma trận có giảm dần ko

int Ktra(int a[][100],int dong,int cot, int CotXet)

{

int flag = 1;

for (int i=0;i<dong-1;i++)

{

if (a[i][CotXet]<a[i+1][CotXet])

{

flag=0;

break;

}

}

return flag;

}

354 Ktra các gtrị trong ma trận có giảm dần theo cột và dòng hay ko int Ktra(int a[][100],int dong,int cot)

{

int flag =1;

int i,j;

//Ktra dong truoc for (i=0;i<dong;i++)

{

for (j=0; j<cot-1;j++)

{

if (a[i][j]<a[i][j+1])

{

flag=0;

break;

}

}

}

//Ktra cot sau

for (j=0; j<cot;j++)

{

for (i=0; i<dong-1;i++)

{

if (a[j][i]<a[j][i+1])

{

flag=0;

break;

}

}

}

return flag;

}

355 Liệt kê các dòng toàn âm trong ma trận các số thực void LietKe(float a[][100],int dong,int cot)

{

int i,j,flag;

//Ktra dong truoc for (i=0;i<dong;i++)

{

for (flag =1,j=0; j<cot;j++)

{

if (a[i][j]>0)

{

flag=0;

break;

}

}

if (flag == 1)

{

printf("

Dong a[%d] toan am : ",i);

for (j=0;j<cot;j++)

{

printf(" %.2f ",a[i][j]);

}

}

}

}

356 Liệt kê chỉ số các dòng chứa toàn giá trị chẵn void LietKe(int a[][100],int dong,int cot)

{

int i,j,flag;

//Ktra dong truoc for (i=0;i<dong;i++)

{

for (flag =1,j=0; j<cot;j++)

{

if (a[i][j]%2!=0)

{

flag=0;

break;

}

}

if (flag == 1)

{

printf("

Dong a[%d] toan chan ",i);

}

}

}

357 Liệt kê dòng chứa số nguyên tố

void LietKe(int a[][100],int dong,int cot)

{

int i,j,flag;

for (i=0;i<dong;i++)

{

for (flag =0,j=0; j<cot;j++)

{

if (SoNguyenTo(a[i][j])==1)

{

flag=1;

break;

}

}

if (flag == 1)

{

printf("

Dong a[%d] co chua so nguyen to ",i);

}

}

}

358 liệt kê các dòng có chứa giá trị chẵn void LietKe(int a[][100],int dong,int cot)

{

int i,j,flag;

for (i=0;i<dong;i++)

{

for (flag =0,j=0; j<cot;j++)

{

if (a[i][j]%2==0)

{

flag=1;

break;

}

}

if (flag == 1)

{

printf("

Dong a[%d] co chua chan ",i);

}

}

}

359 Liệt kê các dòng có chứa giá trị âm

void LietKe(int a[][100],int dong,int cot)

{

int i,j,flag;

for (i=0;i<dong;i++)

{

for (flag =0,j=0; j<cot;j++)

{

if (a[i][j] <0)

{

flag=1;

break;

}

}

if (flag == 1)

{

printf("

Dong a[%d] co chua gia tri am ",i);

}

}

}

360 Liệt kê các cột chứa số chính phương

void LietKe(int a[][100],int dong,int cot)

{

int i,j,flag;

for (j=0;j<cot;j++)

{

for (flag =0,i=0; i<dong;i++)

{

if (sochinhphuong(a[i][j])==1)

{

flag=1;

break;

}

}

if (flag == 1)

{

printf("

Cot a[%d] co chua so chinh phuong ",j);

}

}

}

361 Liệt kê các dòng thỏa: có giá trị âm, dương và 0 (ptử trung hòa)

void LietKe(int a[][100],int dong,int cot)

{

int i,j;

for (i=0;i<dong;i++)

{

if (n>2)

{

int flag[3] = {0};

for (j=0; j<cot;j++)

{

if (a[i][j]<0)

{

flag[0] = 1;

}

else if (a[i][j]==0)

{

flag[1] = 1;

}

else if (a[i][j]>0)

{

flag[2] = 1;

}

if (flag[0]+flag[1]+flag[2]==3)

{

printf("

Dong a[%d] co ptu am, duong, 0",i);

break;

}

}

}

}

}

362 Liệt kê các dòng giảm dần

void LietKe(int a[][100],int dong,int cot)

{

int i,j,flag;

for (i=0;i<dong;i++)

{

for (flag =1,j=0; j<cot-1;j++)

{

if (a[i][j]<a[i][j+1])

{

}

}

if (flag == 1)

{

flag = 0;

break;

printf("

Dong a[%d] giam",i);

}

}

}

363 Liệt kê các cột tăng dần

void LietKe(int a[][100],int dong,int cot)

{

int i,j,flag;

for (j=0;j<cot;j++)

{

for (flag =1,i=0; i<dong-1;i++)

{

if (a[i][j]>a[i+1][j])

{

flag = 0;

break;

}

}

if (flag == 1)

{

printf("

Cot a[%d] tang",j);

}

}

}

364 Cho 2 ma trận A,B. Ktra ma trận A có là ma trận con của B ko?

int KiemTra(int a[][100], int donga, int cota, int b[][100], int dongb, int cotb)

{

int i,j,k,h,flag=0,s,t;

for (i=0; i<donga; i++)

{

for (j=0;j<cota;j++)

{

if (donga-i>=dongb && cota-j>=cotb && a[i][j]==b[0][0])

{

for (flag=1,s=i,k=0;k<dongb;k++,s++)

{

for (h=0,t=j;h<cotb;h++,t++)

{

if (b[k][h]!=a[s][t])

{

flag =0;

break;

}

}

if (flag == 0)

break;

else

}

}

}

}

return 1;

return 0;

}

365 Đếm số lần xuất hiện của ma trận A trong ma trận B?

int Dem(int a[][100], int donga, int cota, int b[][100], int dongb, int cotb)

{

int i,j,k,h,flag=1,s,t,dem=0;

for (i=0; i<donga; i++)

{

for (j=0;j<cota;j++)

{

if (donga-i>=dongb && cota-j>=cotb && a[i][j]==b[0][0])

{

for (s=i,k=0;k<dongb;k++,s++)

{

for (h=0,t=j;h<cotb;h++,t++)

{

if (b[k][h]!=a[s][t])

{

flag =0;

break;

}

}

if (flag == 0)

break;

}

if (flag == 1)

{

dem++;

}

}

}

}

return dem;

}

Kĩ thuật đặt lính canh

366 Tìm số chẵn đầu tiên trong ma trận

int GiaTriCanTim(int a[][100], int cot, int dong)

{

for (int i=0; i<dong; i++)

{

for(int j=0; j<cot; j++)

{

if (a[i][j]%2==0)

{

return a[i][j];

}

}

}

return -1;

}

367 Tìm max trong ma trận

int GiaTriCanTim(int a[][100], int cot, int dong)

{

int Max = a[0][0];

for (int i=0; i<dong; i++)

{

for(int j=0; j<cot; j++)

{

Max = (Max>a[i][j])?Max:a[i][j];

}

}

return Max;

}

368 Tìm giá trị lớn thứ 2 trong ma trận (max2)

int GiaTriCanTim(int a[][100], int cot, int dong)

{

int Max=a[0][0];

for (int i=0; i<dong; i++)

{

for(int j=0; j<cot; j++)

{

Max = (Max>a[i][j])?Max:a[i][j];

}

}

int Max2 = a[0][0];

for (i=0; i<dong; i++)

{

for(int j=0; j<cot; j++)

{

if (Max>Max2 && a[i][j]!=Max && Max2<a[i][j])

{

Max2 = a[i][j];

}

}

}

return Max2;

}

369 Tìm số dương đầu tiên trong ma trận

int GiaTriCanTim(int a[][100], int cot, int dong)

{

for (int i=0; i<dong; i++)

{

for(int j=0; j<cot; j++)

{

if (a[i][j]>0)

{

return a[i][j];

}

}

}

return -1;

}

370 Tìm giá trị âm lớn nhất trong ma trận

int AmDauTien(int a[][100], int cot, int dong)

{

for (int i=0; i<dong; i++)

{

for (int j=0; j<cot; j++)

{

if (a[i][j]<0)

{

return a[i][j];

}

}

}

return 0;

}

int GiaTriCanTim(int a[][100], int cot, int dong)

{

int AmMax = AmDauTien(a,cot,dong);

if (AmMax == 0)

{

return 0;

}

for (int i=0; i<dong;i++)

{

for (int j=0; j<cot; j++)

{

if (a[i][j]<0)

{

AmMax = (AmMax>a[i][j])?AmMax:a[i][j];

}

}

}

return AmMax;

}

371 Liệt kê các dòng có chứa max

int GiaTriMax(int a[][100], int cot, int dong)

{

int Max = a[0][0];

for (int i=0; i<dong; i++)

{

for(int j=0; j<cot; j++)

{

Max = (Max>a[i][j])?Max:a[i][j];

}

}

return Max;

}

void LietKe(int a[][100], int cot, int dong)

{

int Max = GiaTriMax(a,cot,dong);

for (int i=0; i<dong;i++)

{

for (int j=0; j<cot; j++)

{

if (a[i][j]==Max)

{

printf("

Dong [%d] chua max: ", i);

for (j=0; j<cot; j++)

{

printf("%4d", a[i][j]);

}

}

}

}

}

372 Tìm giá trị lớn nhất trên 1 dòng

void LietKe(int a[][100], int cot, int dong)

{

for (int i=0; i<dong;i++)

{

int Max = a[i][0];

for (int j=0; j<cot; j++)

{

Max = (Max>a[i][j])?Max:a[i][j];

}

printf("

Dong %d: ",i) ;

printf("Gia tri max %d",Max);

}

}

373 Tìm giá trị nhỏ nhất trên 1 cột

void LietKe(int a[][100], int cot, int dong)

{

for (int i=0; i<cot;i++)

{

int Min = a[0][i];

for (int j=0; j<dong; j++)

{

Min = (Min<a[j][i])?Min:a[j][i];

}

printf("

Cot %d: ",i) ;

printf("Gia tri min %d",Min);

}

}

374 Tìm số nguyên tố đầu tiên

int SoNguyenTo(int a)

{

if (a<=1)

{

return 0;

}

for (int i=2; i<a; i++)

{

if (a%i==0)

{

return 0;

}

}

return 1;

}

int GiaTriCanTim(int a[][100], int cot, int dong)

{

for (int i=0; i<dong; i++)

{

for(int j=0; j<cot; j++)

{

if (SoNguyenTo(a[i][j])==1)

{

return a[i][j];

}

}

}

return -1;

}

375 Tìm số chẵn lớn nhất

int ChanDauTien(int a[][100], int cot, int dong)

{

for (int i=0; i<dong; i++)

{

for (int j=0; j<cot; j++)

{

if (a[i][j]%2==0)

{

return a[i][j];

}

}

}

return -1;

}

int GiaTriCanTim(int a[][100], int cot, int dong)

{

int ChanMax = ChanDauTien(a,cot,dong);

if (ChanMax == -1)

{

return -1;

}

for (int i=0; i<dong;i++)

{

for (int j=0; j<cot; j++)

{

if (a[i][j]%2==0)

{

ChanMax = (ChanMax>a[i][j])?ChanMax:a[i][j];

}

}

}

return ChanMax;

}

376 Tìm số dương nhỏ nhất

int DuongDauTien(int a[][100], int cot, int dong)

{

for (int i=0; i<dong; i++)

{

for (int j=0; j<cot; j++)

{

if (a[i][j]>0)

{

return a[i][j];

}

}

}

return -1;

}

int GiaTriCanTim(int a[][100], int cot, int dong)

{

int DuongMin = DuongDauTien(a,cot,dong);

if (DuongMin == -1)

{

return -1;

}

for (int i=0; i<dong;i++)

{

for (int j=0; j<cot; j++)

{

if (a[i][j]>0)

{

DuongMin = (DuongMin<a[i][j])?DuongMin:a[i][j];

}

}

}

return DuongMin;

}

377 Tìm số nguyên tố lớn nhất

int SoNguyenTo(int a)

{

if (a<=1)

{

return 0;

}

for (int i=2; i<a; i++)

{

if (a%i==0)

{

return 0;

}

}

return 1;

}

int SoNguyenToDauTien(int a[][100], int cot, int dong)

{

for (int i=0; i<dong; i++)

{

for (int j=0; j<cot; j++)

{

if (SoNguyenTo(a[i][j])==1)

{

return a[i][j];

}

}

}

return -1;

}

int GiaTriCanTim(int a[][100], int cot, int dong)

{

int SoNguyenToMax = SoNguyenToDauTien(a,cot,dong);

if (SoNguyenToMax == -1)

{

return -1;

}

for (int i=0; i<dong;i++)

{

for (int j=0; j<cot; j++)

{

if (SoNguyenTo(a[i][j])==1)

{

SoNguyenToMax = (SoNguyenToMax>a[i][j])?SoNguyenToMax:a[i][j];

}

}

}

return SoNguyenToMax;

}

378 Tìm 1 chữ số xuất hiện nhiều nhất

void ChuSo(int n, int b[])

{

int DonVi; n = abs(n); do

{

DonVi = n%10; b[DonVi]++; n=n/10;

} while (n>0);

}

int GiaTriCanTim(int a[][100], int cot, int dong)

{

int b[10] = {0};

for (int i=0; i<dong;i++)

{

for (int j=0; j<cot; j++)

{

ChuSo(a[i][j],b);

}

}

int ChuSoNhieuNhat = 0;

for (i=1; i<10; i++)

{

if (b[ChuSoNhieuNhat] < b[i])

{

ChuSoNhieuNhat = i;

}

}

return ChuSoNhieuNhat;

}

Bạn đang đọc truyện trên: truyentop.pro

Tags: