Chào các bạn! Vì nhiều lý do từ nay Truyen2U chính thức đổi tên là Truyen247.Pro. Mong các bạn tiếp tục ủng hộ truy cập tên miền mới này nhé! Mãi yêu... ♥

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: Truyen247.Pro

Tags: