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 1 chieu-3

276/ Xóa tất cả các ptử trùng với x .

voi d xoavi tri(fl oat a[], int & n, float k)

{

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

{

}

n--;

}

a[i ] = a[i+1];

voi d xoamang(float a[], int &n, fl oat x)

{

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

{

if (a[i] ==x)

{

xoavi tri(a,n,i );

i--;

}

}

}

277/ Xóa tất cả số nguyê n tố trong mảng .

voi d xoavi tri(int a[], int &n, int k)

{

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

{

}

n--;

}

a[i] = a[i +1];

int s onguyento(int n)

{

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

{

if (n% i==0)

re turn 0;

}

return 1 ;

}

voi d xoamang(int a[], int & n)

{

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

{

if (a[i]>=2)

{

i f (s onguye nto(a[i ])==1)

{

xoavitri(a,n,i);

i --;

}

}

}

}

278/ xóa tất cả ptử trùng nhau trong mảng và chỉ giữ lại duy nhất 1 ptử .

voi d xoavitri(int a[], i nt &n, int k)

{

for (i nt i =k; i<n; i ++)

{

}

n--;

}

a[i] = a[i +1];

voi d xoamang(int a[], int &n)

{

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

{

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

{

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

{

xoavi tri(a,n,j);

j--;

}

}

}

}

279/ Xóa tất cả ptử xuất hiê n nhiề u hơn 1 lần trong mảng .

voi d xoavitri(int a[], i nt &n, int k)

{

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

{

}

n--;

}

a[i] = a[i+1];

voi d xoamang(int a[], int &n)

{

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

{

for (int tes t = 0,j=i+1; j<n;j++) // xóa ptử tại j

{

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

{

xoavi tri(a,n,j);

j--;

tes t=1;

}

}

if (tes t == 1)

{

xoavi tri(a,n,i); //Xóa luôn chính nó

}

}

}

Kĩ thuật xử lý mảng

280/ Hãy đưa s ố 1 về đầu mảng .

voi d DoiCho(int a[], int n, int k)

{

for(int i = k ; i>0; i--)

{

a[i] = a[i -1];

}

a[0] = 1;

}

voi d duaMotve dau(int a[], int n)

{

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

{

if (a[i] == 1)

{

DoiCho(a,n,i); // vi tri i

}

}

}

281/ Hãy đưa chẵn về đầu, lẻ về cuối, ptử 0 nằm giữa mảng .

voi d duachanve dau(int a[], int k)

{

int tam = a[k];

for(int i = k ; i>0; i--)

{

a[i] = a[i -1];

}

a[0] = tam;

}

voi d dua0(int a[], int k, int vi trichancuoi)

{

for(int i = k ; i>vi trichancuoi; i --)

{

a[i] = a[i -1];

}

a[vi trichancuoi] = 0;

}

voi d s apxe p(int a[], int n)

{

int i;

int vitrichanc uoi ;

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

{

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

{

duac hanve dau(a,i); // vi tri i

}

}

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

{

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

{

vi trichancuoi = i;

bre ak;

}

}

for (i ; i<n; i ++)

{

if (a[i] == 0 )

{

dua0(a,i,vitrichanc uoi); // vi tri i

}

}

}

282/ Đưa các số chia hế t cho 3 về đầu mảng .

voi d DoiCho(int a[], int n, int k)

{

int tam = a[k];

for(int i = k ; i>0; i--)

{

a[i] = a[i -1];

}

a[0] = tam;

}

voi d c hiahetchoba(int a[], int n)

{

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

{

if (a[i] % 3 == 0)

{

DoiCho(a,n,i); // vi tri i

}

}

}

283/ Đảo ngược mảng ban đầu .

voi d hoanvi(i nt & a, int & b)

{

int tam = a;

a = b;

b =tam;

}

voi d DaoMang(int a[], int n)

{

for (i nt i =0,j=n -1; i<j; i++,j --)

{

hoanvi (a[i],a[j]);

}

}

284/ Đảo ngược thứ tự các số chẵn trong mảng .

voi d hoanvi(i nt & a, int & b)

{

int tam = a;

a = b;

b =tam;

}

voi d daoc han(int a[], int n)

{

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

{

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

{

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

{

hoanvi (a[i],a[j]);

}

}

}

}

285/ Đảo ngược thứ tự số dương trong mảng .

voi d hoanvi(i nt & a, int & b)

{

int tam = a;

a = b;

b =tam;

}

voi d daoduong(int a[], i nt n)

{

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

{

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

{

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

{

hoanvi (a[i],a[j]);

}

}

}

}

286/ Dịch trái xoay vòng các ptử trong mảng .

voi d dichtr ai(int a[], int n)

{

int tam = a[0];

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

{

a[i]=a[i+1];

}

a[n -1]= tam;

}

287/ Dịch phải xoay vòng các ptử trong mảng

voi d dichphai (int a[], int n)

{

int tam = a[n-1];

for (i nt i =n -1; i>0; i--)

{

a[i]=a[i-1];

}

a[0]= tam;

}

288/Hãy xuất ptử trong mảng theo yê u cầu: chẵn vàng, lẻ trắng .

voi d c olor (int a)

{

HANDLE mau;

mau = Ge tStdHandle(STD_O UTP UT_ HANDLE); SetCons ole TextAttri bute(mau,a);

}

voi d XuatChanVang Le Trang(int a[], int n)

{

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

{

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

{

}

els e

{

}

}

}

col or(14);

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

col or(7);

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

289/ Xuất mảng: chẵn nằm trê n 1 hàng, lẻ nằm hàng tiếp theo .

voi d c hanlehaihang(int a[], int n)

{

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

{

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

{

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

}

}

printf("

\t");

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

{

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

{

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

}

}

}

290/ Đảo ngược thứ tự số chẵn và lẻ trong mảng nhưng giữ vị trí tương đối .

voi d hoanvi(i nt & a, int & b)

{

int tam = a;

a = b;

b =tam;

}

voi d daonguocc hanle(int a[], int n)

{

int i, j;

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

{

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

{

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

hoanvi (a[i],a[j]);

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

hoanvi (a[i],a[j]);

}

}

}

291/ B iến đổi mảng bằng cách thay giá trị max = giá trị min và ngc lại .

voi d mi nmax(int a[], int n, int & max, int & min)

{

max=a[0];

min=a[0];

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

{

max=(max<a[i ])?a[i]:max;

min=(min>a[i])?a[i]:min;

}

}

voi d biendoi(int a[], int n, int max, int min)

{

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

{

if (a[i]==max)

{

a[i]=min;

}

els e if (a[i]==min)

{

a[i]=max;

}

}

}

292/ B iến đổi mảng bằng cách thay tất cả ptử trong mảng bằng số nguyê n gần nó nhất .

voi d thays ogannhat(fl oat &n)

{

int phannguyen = (int) (n) ;

fl oat phanle = n - phannguye n;

if (phanle <=0.5)

{

}

els e

{

}

}

n = (fl oat)phannguye n;

n = (fl oat)phannguye n + 1;

voi d biendoi(float a[], int n)

{

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

{

thays ogannhat(a[i]);

}

}

Kĩ thuật xử lý mảng con

293/ Liệt kê tất cả các mảng con .

voi d lietkecon(int a[], int n)

{

int ChieuDai;

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

{

for (ChieuDai = 1; ChieuDai<=n; ChieuDai ++)

{

for(int j=i; j<ChieuDai; j++)

{

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

}

printf("

");

}

}

}

294/ Liệt kê mảng con có độ dài lớn hơn 2 ptử .

voi d lietkecon(int a[], int n)

{

int ChieuDai;

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

{

for (ChieuDai = 3+i; ChieuDai<=n; ChieuDai++)

{

for(int j=i; j<ChieuDai; j++)

{

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

}

printf("

");

}

}

}

295/ Liệt kê dãy con tăng dần .

int ktramangtang (int b[], i nt nb)

{

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

{

if (b[i ]>b[i+1 ])

retur n 0;

}

retur n 1;

}

voi d xuatmangcon(int b[], int nb)

{

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

{

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

}

printf("

");

}

voi d lietkecontang(int a[], int n)

{

int ChieuDai;

int b[100], nb;

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

{

for (ChieuDai = 1; ChieuDai<=n; ChieuDai ++)

{

nb=0;

for(int j=i; j<ChieuDai; j++)

{

b[nb]=a[j];

nb++;

}

if (ktramangtang(b,nb)==1)

{

xuatmangcon(b,nb);

}

}

}

}

296/ Liệt kê dãy con tăng và chứa giá trị lớn nhất .

int lonnhat(int a[], int n)

{

int max = a[0 ];

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

{

max = max<a[i]?a[i]:max;

}

retur n max;

}

int ktramangtang (int b[], i nt nb)

{

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

{

if (b[i ]>b[i+1 ])

retur n 0;

}

retur n 1;

}

voi d xuatmangcon(int b[], int nb)

{

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

{

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

}

printf("

");

}

int ktrac omax(int b[], i nt nb,i nt max)

{

for (i nt i =0; i<nb;i++)

{

if (b[i ]==max)

{

retur n 1;

}

}

retur n 0;

}

voi d lietkecontang(int a[], int n, int max)

{

int ChieuDai;

int b[100], nb;

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

{

for (ChieuDai = 1; ChieuDai<=n; ChieuDai ++)

{

nb=0;

for(int j=i; j<ChieuDai; j++)

{

b[nb]=a[j];

nb++;

}

if (ktramangtang(b,nb)==1)

{

if (ktrac omax(b,nb,max)==1)

{

xuatmangcon(b,nb);

}

}

}

}

}

297/ Tính tổng từng mảng con tăng .

int ktramangtang (int b[], i nt nb)

{

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

{

if (b[i ]>b[i+1 ])

retur n 0;

}

retur n 1;

}

voi d xuatmangcon(int b[], int nb)

{

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

{

printf(" % d ", b[i]);

}

}

intt tongmangc on(int b[], i nt nb)

{

intt s =0;

for (i nt i =0; i<nb; i++)

{

s = s + b[i];

}

retur n s ;

}

voi d lietkecontang(int a[], int n)

{

int chieudaicon, b[100], nb, tong ;

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

{

for (chieudaicon = 1+i; chieudaic on<=n; c hieudaicon++)

{

for(int j=i; j<chieudaicon; j++)

{

b[nb]=a[j];

nb++;

}

if (ktramangtang(b,nb)==1)

{

xuatmangcon(b,nb);

tong = tong mangcon(b,nb);

printf("\tTong mang nay: % .2f

", tong);

}

}

}

}

298/ Đế m mảng con tăng có độ dài lớn hơn 1 .

int ktramangtang (int b[], i nt nb)

{

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

{

if (b[i ]>b[i+1 ])

retur n 0;

}

retur n 1;

}

voi d De mc ontang(int a[], int n)

{

int chieudaicon, b[100], nb;

int de m=0;

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

{

for (chieudaicon = 2+i; chieudaic on<=n; c hieudaicon++)

{

for(int j=i; j<chieudaicon; j++)

{

b[nb]=a[j];

nb++;

}

if (ktramangtang(b,nb)==1)

{

de m++;

}

}

}

printf("

Tong s o mang c an ti m: % d

", de m);

}

299/ Liệt kê dãy con toàn dương và độ dài lớn hơn 1 .

int ktramang duong(fl oat b[], int nb)

{

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

if (b[i ]<0)

retur n 0;

retur n 1;

}

voi d xuatmangcon(fl oat b[], int nb)

{

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

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

printf("

");

}

voi d lietkecontang(float a[], int n)

{

int chieudaicon;

fl oat b[100];

int nb;

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

{

for (chieudaicon = 2+i; chieudaic on<=n; c hieudaicon++)

{

for(int j=i; j<chieudaicon; j++)

{

b[nb]=a[j];

nb++;

}

if (ktramang duong(b,nb)==1)

xuatmangcon(b,nb);

}

}

}

300/ Đế m mảng con giảm .

int ktramanggiam(float b[], int nb)

{

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

{

if (b[i ]<b[i+1 ])

retur n 0;

}

retur n 1;

}

voi d De mc ongiam(fl oat a[], int n)

{

int chieudaicon;

fl oat b[100];

int nb;

int de m=0;

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

{

for (chieudaicon = 1+i; chieudaic on<=n; c hieudaicon++)

{

nb=0;

for(int j=i; j<chieudaicon; j++)

{

b[nb]=a[j];

nb++;

}

if (ktramanggiam(b,nb)==1)

de m++;

}

}

printf("

Tong s o mang c on giam c an ti m: % d

", de m);

}

301/ Cho biết mảng a có phải là mảng con trong mảng b ko?

int Ktr a(i nt a[], int b[], i nt na, int nb)

{

int i,j,tes t = 0;

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

{

if (b[i ]==a[0])

{

int h = i;

for (tes t=1, j=0; j<na;j++,h++)

{

if (a[j] != b[h])

{

tes t = 0;

bre ak;

}

}

if (tes t == 1)

retur n tes t; // Mảng a l à c on mảng b

}

}

retur n tes t;

}

302/ Đế m số lần xuất hiệ n mảng a trong mảng b .

int De m(int a[], int b[], int na, int nb)

{

int i,j,tes t,de m=0;

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

{

if (b[i ]==a[0])

{

int h = i;

for (tes t=1, j=0; j<na;j++,h++)

{

if (a[j] != b[h])

{

tes t = 0;

bre ak;

}

}

if (tes t == 1)

de m++;

}

}

retur n de m;

}

303/ Dãy con toàn dương dài nhất .

voi d DayConToanDuongDaiNhat(int a[], i nt n)

{

int i,l,k,tes t,vt,pt=0;

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

{

for (l=i; l <=n;l++)

{

for (tes t = 1,k=0; k<l ; k++)

{

if (a[k]<0)

{

tes t = 0; break;

}

}

if (tes t == 1)

{

if (pt<k)

{

pt=k;

vt=i ;

}

}

}

}

printf("

Day c on duong dai nhat: ");

for (vt; vt<pt; vt++)

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

}

304 * Cho mảng a, số nguyê n M.Tìm 1 mảng con s ao cho tổng các ptử bằng M .

voi d Tong MangConB ang M(int a[], int n,int m)

{

int i,l,k,s =0;

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

{

for (l=i; l <=n;l++)

{

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

s +=a[k];

if (s == m)

{

printf("

Day c on co tong ptu bang M: ");

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

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

}

}

}

}

305 * Tìm dãy con toàn dương có tổng lớn nhất .

voi d DayConToanDuong TongLonNhat(int a[], int n)

{

int i,l,k,s =0,Stam=0,tes t,vt,pt;

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

{

for (l=i; l <=n;l++)

{

for (tes t=1,k=0; k<l ; k++)

{

Stam+=a[k];

if (a[k]<0)

{

tes t = 0; break;

}

}

if (tes t == 1)

{

if (Stam>s )

{

s = Stam;

vt = i;

pt = k;

}

}

}

}

printf("

Day c on duong co tong lon nhat: ");

for (vt; vt<pt; vt++)

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

}

306/ Tìm mảng con có tổng lớn nhất .

voi d DayConTong LonNhat(int a[], int n)

{

int i,l,k,s =0,Stam=0,vt,pt;

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

{

for (l=i; l <=n;l++)

{

for (k=0; k<l ; k++) Stam+=a[k];

if (Stam>s )

{

s = Stam;

vt = i;

pt = k;

}

}

}

printf("

Day c on co tong l on nhat: ");

for (vt; vt<pt; vt++)

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

}

Xây dựng mảng

307/ Tạo mảng b chỉ chứa giá trị lẻ từ mảng a .

voi d TaoMangB(i nt a[], int n)

{

int b[100], nb=0;

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

{

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

{

b[nb] = a[i];

nb++;

}

}

xuatmang(b,nb);

}

308/ Tạo mảng b chỉ chứa giá trị âm từ mảng a .

voi d TaoMangB(i nt a[], int n)

{

int b[100], nb=0;

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

{

if (a[i]<0 )

{

b[nb] = a[i];

nb++;

}

}

xuatmang(b,nb);

}

309/ Tạo mảng b s ao cho b[i] = tổng các ptử lận cận với a[i] trong mảng a .

voi d TaoMangB(i nt a[], int n)

{

int b[100], nb=0;

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

{

if (i==0)

b[nb] = a[i +1];

els e if (i==n-1)

b[nb] = a[i-1 ];

els e

nb++;

}

b[nb] = a[i-1 ] + a[i+1];

xuatmang(b,nb);

}

310/ Tạo mảng b chỉ chứa số nguyê n tố từ mảng a .

int SoNguyenTo(i nt a)

{

if (a<=1 )

retur n 0;

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

if (a% i==0)

retur n 0;

retur n 1;

}

voi d TaoMangB(i nt a[], int n)

{

int b[100], nb=0;

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

{

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

{

b[nb] = a[i];

nb++;

}

}

xuatmang(b,nb);

}

----------Hế t Mảng 1 chiề u --------

B ài tổng hợp nâng cao chút của mảng 1 chiề u

311/ Tạo 1 mảng ngẫu nhiê n và xuất ra dãy con tăng dần dài nhất. Nế u 2 dãy con tăng dài bằng

nhau thì xuất dãy con tăng đầu tiê n .

#include <s tdio.h>

#include <s tdli b.h>

#include <ti me.h>

voi d NhapMang(i nt a[], int &n)

{

n = r and()% 10;

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

a[i] = r and()% 50;

}

voi d XuatMang(i nt a[], int n)

{

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

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

}

voi d Ti mDayConTangDan(int a[], int n, int &Vi TriBatDau, int & ViTri Ke tThuc )

{

int Vi TriBatDauTam =0, ViTri Ke tThuc Tam=0;

int De m =0, De mTam = 0;

for (Vi Tri KetThuc Tam = 0; ViTri Ke tThuc Tam<n; ViTri KetThuc Tam++)

{

if (a[Vi Tri KetThuc Tam] <= a[ViTri Ke tThuc Tam+1])

{

}

els e

{

De mTam++;

if (De mTam>De m)

{

Vi TriBatDau = Vi TriBatDauTam;

Vi Tri KetThuc = Vi Tri KetThucTam; De m = De mTam;

}

Vi TriBatDauTam = Vi Tri KetThucTam + 1 ; De mTam = 0;

}

}

}

voi d XuatDayCon(int a[], int Vi TriBatDau, int ViTri Ke tThuc )

{

for(int i=Vi TriBatDau; i<=Vi Tri KetThuc; i++)

pri ntf("% 4d",a[i]);

}

voi d main()

{

s rand((uns igned)ti me(NULL));

int n,a[100];

NhapMang (a,n); //Nh ập mảng ngẫu nhiên printf("Mang ngau nhien duoc tao: "); XuatMang(a,n);

printf("

");

//Tì m dãy c on tăng dài nh ất

int Vi TriBatDau = -1, ViTri Ke tThuc = -1; TimDayConTangDan(a,n,Vi TriBatDau,Vi Tri KetT huc);

//Xu ất dãy con tăng với 2 biến Vi TriBatDau, Vi Tri KetThuc

printf("Day c on tang dai nhat: "); XuatDayCon(a,ViTriBatDau,ViTri Ke tThuc );

}

Bạn đang đọc truyện trên: Truyen247.Pro

Tags: