Download as pdf or txt
Download as pdf or txt
You are on page 1of 57

Chuyn m ng 1 chiu

K thut nhp xut mng 128/ Vi t hm nhp mng 1 chi u cc s thc


voi d NhapMang(float a[], int &n) { printf("Nhap so phan tu: "); scanf ("% d",&n); for (i nt i =0;i<n;i++) { printf("Nhap a[% d]: ", i); scanf("% f", &a[i]); } }

Y!m :nhatquai.theboy

129/ Vi t hm nhp mng 1 chi u cc s nguyn


voi d NhapMang(i nt a[], int &n) { printf("Nhap so phan tu: "); scanf ("% d",&n); for (i nt i =0;i<n;i++) { printf("Nhap a[% d]: ", i); scanf("% d", &a[i]); } }

130/ Vi t hm xut mng 1 chiu cc s thc


voi d XuatMang(float a[], int n) { for (i nt i =0;i<n;i++) { printf(" % .2f ", a[i]); } }

131/ Vi t hm xut mng 1 chiu cc s nguyn


voi d XuatMang(i nt a[], int n) { for (i nt i =0;i<n;i++) { printf("% 4d", a[i]); } }

132/ Vi t hm lit k cc gi tr chn trong mng 1 chi u cc s nguyn .


voi d LietKeGiaTri Chan(int a[], int n) { for (i nt i =0;i<n;i++) { if(a[i ]% 2==0) printf("% 4d",a[i]); } }

133/ Vi t hm lit k cc v tr m gi tr ti l gi tr m trong mng 1 chi u .


voi d LietKeVi TriAm(int a[], int n) { for (i nt i =0;i<n;i++) { if(a[i ]<0) printf("% 4d",i); } }

K thut t lnh canh cc bt c bn 134/ Vi t hm tm gi tr ln nht trong mng 1 chi u cc s thc float lonnhat(float a[],int n) { float lc=a[0]; for (int i=0;i<n;i++) { if(a[i]>lc) lc=a[i]; } return lc; } 135/ Tm Gi tr dng u tin trong mng 1 chi u cc s thc. Nu mng ko c gi tr dng th tr v gi tr -1
float duong dau(float a[], int n) { for (i nt i =0; i<n; i++) { if (a[i]>0 ) { return a[i]; } } return -1; }

136/ Tm S chn cu i cng trong mng 1 chi u cc s nguyn. N u mng ko c gi tr chn th tr v gi tr -1 .


int chancuoi(int a[] , int n) { for(int i=n-1; i>=0; i--) { if(a[i ]% 2==0) { return a[i]; } } return -1; }

137/ Tm 1 v tr m gi tr ti l gi tr nh nht trong mng 1 chi u cc s thc float vitrinhonhat(float a[],int n) { int lc=0; for(int i=0;i<n;i++) { if(a[i]<a[lc]) } 138/ Tm V tr ca gi tr chn u tin trong mng m t chi u cc s nguyn. N u mng ko c gi tr chn th tr v gi tr -1 .
int vitrichandau(i nt a[] , int n) { for(int i=0; i<n; i ++) { if(a[i ]% 2==0) { return i; }

} return -1; }

139/ Tm v tr s hon thi n cu i cng trong mng 1 chi u cc s nguyn. N u mng ko c s hon thi n th tr v gi tr -1 .
int sohoanthien(int n) { int tong=0 ; for (i nt i =1 ; i <n; i++) if(n% i==0) tong = tong + i; if (tong == n) return 1; return 0; } int vitrihoanthiencuoi(int a[],int n) { for(int i=n-1; i>=0; i--) if(sohoanthien(a[i]==1) return i; return -1; }

140/ Hy tm gi tr dng nh nht trong mng cc s thc. N u mng khng c gi tr dng th tr v gi tr l -1 .


float DuongNhoNhat(float a[], int n) { fl oat min; int dem= 0; for (i nt i =0; i<n; i++) { if(a[i ]>0) { dem ++; break; } } if (dem !=0 ) { min = a[i]; for (i=i+1; i<n; i++) { if((a[i]>0)&&(mi n>a[i ])) { min = a[i ]; } } return min; } return -1; }

141/ Hy tm v tr dng nh nht trong mng 1 chiu cc s thc. nu mng ko c gi tr dng th tr v 1 gi tr ngoi on [0,n-1] l -1 nhm m t ko c v tr no tha i u ki n.
int vtduongnhonhat(float * A, i nt n) { int min; int dem =0 ; for (i nt i =0; i<n; i++) { if(A[i ]>0) { dem++; min = i;

break; } } if (dem == 0) return -1; for (i =i+1; i<n; i++) { if((A[i]>0)&&(A[mi n]>A[i])) { min = i; } } return min; }

Cc bt luy n tp 142/ Tm Gi tr nh nht trong mng 1 chi u cc s thc .


float NhoNhat(float a[], int n) { fl oat min = a[0]; for (i nt i =1; i<n; i++) { min = (min>a[i])? a[i]:min; } return min; }

143/ Vi t hm tm chn u tin trong mng cc s nguyn. N u mng ko c gi tr chn th hm tr v -1 .


int ChanDau(int a[],int n) { for(int i=0; i<n; i ++) { if(a[i ]% 2==0) { return a[i]; } } return -1; }

144/ Tm s nguyn t u tin trong mng 1 chi u cc s nguyn. N u mng khng c s nguyn t th tr v gi tr -1 .
int intto(int n) { if (n>=2) { for (int i =2; i<n; i++) if (n% i==0) return 0; return 1; } return 0; } int nguyentodau(int a[], int n) { for(int i=0; i<n; i ++) { if(intto(a[i])==1) { return a[i]; } } return -1; }

145/ Tm S hon thin u tin trong 1 chi u cc s nguyn. Nu mng ko c s hon thi n th tr v gi tr -1.
int sohoanthien(int n) { int tong=0 ; for (i nt i =1 ; i <n; i++) if(n% i==0) tong = tong + i; if (tong == n) return 1; return 0; } int hoanthiendau(int a[],i nt n) { for(int i=0; i<n; i ++) if(sohoanthien(a[i])==1) return a[i]; return -1; }

146/ Tm gi tr m u tin trong mng 1 chi u cc s thc. n u mng ko c gi tr m th tr v gi tr l 1 .


float AmDau(fl oat a[], int n) { for (i nt i =0; i<n; i++) { if (a[i])<0) { return a[i]; } } return 1; }

147/ Tm s dng cu i cng trong mng s thc. Nu mng ko c gi tr dng th tr v gi tr -1 .


float DuongCuoi Cung(fl oat a[], int n) { for (i nt i =n-1; i>=0; i --) { if (a[i]>0 ) { return a[i]; } } return -1; }

148/ Tm s nguyn t cu i cng trong mng 1 chi u cc s nguyn. N u mng ko c s nguyn t th tr v gi tr -1 .


int nguyentocuoi(int a[],int n) { for(int i=n-1; i>=0; i--) { if(intto(a[i])==1) { return a[i]; } } return -1; }

149/ Tm s han thi n cu i cng trong mng 1 chi u cc s nguyn. N u mng ko c s han thi n th hm tr v gi tr -1 .

int hoanthiencuoi(int a[],int n) { for(int i=n-1; i>=0; i--) { if(sohoanthien(a[i])==1) { return a[i]; } } return -1; }

150 / Hy tm gi tr m l n nh t trong mng cc s thc. Nu mng ko c gi tr m th tr v gi tr 0 .


float AmMax(fl oat a[], int n) { fl oat max; int dem =0; for (i nt i =0; i<n; i++) { if(a[i ]<0) { dem++; break; } } if (dem ==0) { return 0; } else { max = a[i]; for (i=i+1; i<n; i++) { if((a[i]<0)&&(max<a[i])) { max = a[i]; } } return max; } }

151/ hy tm s nguyn t ln nht trong mng 1 chi u. N u mng ko c th tr v gi tr 0


int nguyentol onnhat(i nt a[],int n) { int dem=0; int max; for(int i=0; i<n; i ++) { if(intto(a[i])==1) { dem ++; max = i ; break; } } if (dem ==0) { return 0; } else { for (i=i+1; i<n; i++) { if ((intto(a[i])==1) && (a[max]<a[i])) { max = i ;

} } } return max; }

152/ hy tm s han thi n nh nht trong mng 1 chi u cc s nguyn. Nu mng ko c tr v 0 .


int hoanthiennhonhat(int a[],int n) { int dem=0; int min; for(int i=0; i<n; i ++) { if(sohoanthien(a[i])==1) { dem ++; min = i; break; } } if (dem ==0) { return 0; } else { for (i=i+1; i<n; i++) { if ((sohoanthien(a[i])==1 ) && (A[min]>a[i])) { min = i; } } } return min; }

153/ Hy tm gi tr chn nh nht trong mng 1 chi u cc s nguyn. N u ko c tr v -1 .


int channhonhat(int a[],int n) { int dem=0; int min; for(int i=0; i<n; i ++) { if(a[i ]% 2==0) { dem ++; min = i; break; } } if (dem ==0) { return -1; } else { for (i=i+1; i<n; i++) { if ((a[i]% 2==0) && (a[min]>a[i])) { min = i; } } } return min; }

154/ hy tm v tr gi tr m ln nht trong mng s thc . ko c th tr v -1 .


int VTriAmMax(fl oat a[], int n) { int VTmax = -1; for (i nt i =0; i<n; i++) { if(a[i ]<0) { VTmax = i; break; } } for (i =i+1; i<n; i++) { if((a[i]<0)&&(a[VTmax]<a[i])) { VTmax = i; } } return VTmax; }

Bi tp luyn t duy 155/ hy tm gi tr trong mng cc s thc xa gi tr x nht .


voi d kcxanhat(fl oat *A , i nt n , fl oat x ) { double kcxn = (fabs)(A[0 ] - x); int j = 0; for(int i = 0 ; i < n ; i ++) { i f((fabs)(A[i]-x) > kcxn) { kcxn = (fabs)(A[i] - x); j = i; } } printf("Gac gia tri xa % .2f nhat la :",x); for(j ; j < n ; j++) { if((fabs)(A[j] - x) == kcxn) { printf("% .2f ",A[j]); } } printf("\n"); }

156/ hy tm 1 v tr trong mng chi u cc s thc m gi tr ti v tr l gi tr g n gi tr x nht .


voi d vi trigannhat(float *A , int n , float x) { double kcgn = (fabs )(A[0] - x); int j = 0; for(int i = 0 ; i < n ; i++) { if((fabs)(A[i ] - x) < kcgn) { kcgn = (fabs)(A[i] - x); j= i; } } printf("Cac vi tri co gia tri gan % .2f nhat l a :",x); for(j;j<n;j++) { if((fabs)(A[j] - x) == kcgn)

{ pri ntf("% d",j); } } printf("\n"); }

157/ hy tm on [a,b] sao cho o n ny cha tt c cc gi tr trong mng .


voi d ti mdoan(st* A, int n) { st max = *A; st mi n = *A; for (int i=1; i<n; i ++) { max = (max<*(A+i))?max:*(A+i ); mi n = (mi n>*(A+i))? min:* (A+i); } printf("\t[ % .1f , % .1f ] l a doan chua cac gia tri trong mang\n", max, mi n); }

158 hy tm gi tr x sao cho on [-x,x] cha tt c cc gi tr trong mng .


float ti mx(float* A, int n) { float x = *A; for (int i=1; i<n; i ++) { x = (x>(fabs)(*(A+i)))? x : (fabs )(*(A+i)); } return x; }

159/ hy tm gi tr u tin ln hn gi tr 2003. N u mng ko c gi tr th a th hm tr v gi tr l 0 .


float dautien(fl oat *A , int n) { for(int i = 0 ; i < n;i ++) { i f(A[i] > 2003) { return A[i]; } } return 0; }

160/ hy tm gi tr m cu i cng ln hn gi tr -1 trong mng s thc. Nu ko c th hm tr v 0 .


float cuoicung(fl oat *A , i nt n) { for(n;n>=0;n--) { if(A[n] > -1 && A[n] < 0) { return A[n]; } } return 0.0 ; }

161/ hy tm gi tr u tin nm trong kh ang (x,y) cho trc. N u ko c tr v gi tr x .


[FONT="]int dautientrong doan(int a[], i nt n, i nt x, int y)[/ FONT] [FONT="]{[/ FONT] [FONT="] int dem =0;[/ FONT] [FONT="] for(int i=0; i<n;i++)[/ FONT] [FONT="] {[/ FONT] [FONT="] if ((a[i]>=x)&&(a[i ]<=y))[/ FONT] [FONT="] {[/ FONT] [FONT="] dem++;[/ FONT]

[FONT="] break;[/ FONT] [FONT="] }[/ FONT] [FONT="] }[/ FONT] [FONT="] if (dem == 0)[/ FONT] [FONT="] {[/ FONT] [FONT="] return x;[/FONT] [FONT="] }[/ FONT] [FONT="] return a[i];[/ FONT] [FONT="]}[/ FONT]

162/ hy tm 1 v tr trong mng s nguyn tha 2 i u ki n: c gi tr ln cn v gi tr ti bng tch 2 gi tr ln cn. N u ko c tr v -1 .


int bai162(float a[], int n) { int i=1; for (;i<n-1;i ++) { if (a [i]==((a[i -1])*a[i+1])) { return i; } } return -1; }

163/ tm s chnh phng u tin trong mng 1 chi u s ngyn .


int sochinhphuong(int a) { for (i nt i =1; i<a; i++) { if (i*i == a) { return 1; } } return 0; } int chinhphuong dautien(int *A, int n) { for (i nt i =0; i<n; i++) { if (sochinhphuong(*(A+i))==1) { return *(A+i ); } } return -1; }

164/ Cho mng s ng. Hy tm gi tr u tin th a tnh cht s gnh (v d: 12321) .


int soganh(int n) { int t=n; int dv,dn=0 ; while (t!=0) { dv=t% 10; dn=dn*10+dv; t=t/10; } if ( n = = dn) { return 1; } return 0; } int bai164(int a[], int n)

{ for (i nt i =0; i<n; i++) { if (soganh(a[i])==1) { return a[i]; } } return -1; }

165/ Hy tm gi tr u tin c ch s u tin l ch s l. Ko c tr v 0 (v d: 110)


int chusodau(int n) { int dv; while (n>=10) { dv=n% 10; n=n/10; } if (n% 2==0) return 0; return 1; } int dauledautien(int a[], int n) { for(int i=0 ; i<n; i++) { if ( chusodau(a[i])==1 ) { return a[i]; } } return 0; }

166/ hy tm gi tr u tin trong mng c dng 2^k. ko c th tr v 0 .


int dang2k(int n) { int du; if (n==1) { return 1; } do { du = n % 2 ; if (du != 0) { return 0; } n = n/2; } while (n>=2); return 1; } int bai166(int a[], int n) { for(int i=0 ; i<n; i++) { if (dang2k(a[i ])==1) { return a[i]; } } return 0; }

167/ Tm gi tr ton l ch s l v ln nht trong nhng s tha iu ki n. ko c tr v 0


int toanchusole(int n) { int dv; while (n!=0) { dv = n % 10; if (dv % 2 == 0) { return 0; } n=n/10; } return 1; } int bai167(int a[], int n) { int max; int dem =0; for(int i=0 ; i<n; i++) { if (toanchusole(a[i])==1 ) { max = a[i]; dem ++; break; } } if (dem == 0) { return 0; } for(; i<n; i ++) { if (toanchusole(a[i])==1 ) { max = ( max>a[i ]) ? max : a[i] ; } return max; }

168/ Hy tm gi tr ln nht tr ng mng c dng 5^k. N u mng khng t n ti th tr v 0


int dang5k(int n) { int du; if (n==1) return 1; while (n>=5 ) { du = n% 5; n=n/5; if (du != 0) return 0; } return 1; } int bai168(int a[], int n) { int max; int dem =0; for(int i=0 ; i<n; i++) { if (dang5k(a[i ])==1) { max = a[i]; } }

dem ++;

break;

if (dem == 0) { return 0; } for(;i<n; i++) { if (dang5k(a[i ])==1) { max = (max>a[i])?max:a[i] ; } } return max; }

169/ Hy tm s chn ln nht nh hn m i gi tr l c trong mng nguyn


int lenhonhat(int a[], int n) { int min ; int dem= 0; for (i nt i =0; i<n ; i++) { if (a[i]% 2 !=0) { min = a[i]; dem ++; break; } } if (dem ==0) return 0; for (i ; i <n; i++) if (a[i]% 2!=0 && min>a[i ]) min = a[i]; return min; } int bai169(int a[], int n) { int lemin = lenhonhat(a,n); if (lemin == 0) return -1; return lemin - 1; }

170/ Tm s nguyn t nh nht ln hn m i gi tr trong mng nguyn .


int lonnhat(int a[], int n) { int max = a[0 ]; for(int i=1; i<n; i ++) { max=(max>a[i ]) ? max :a[i]; } return max; } int intto(int a) { for (i nt i =2; i<a; i++) { if (a% i==0) return 0; } return 1; } int bai170(int a[], int n) { int max = l onnhat(A, n); for (i nt i = max + 1; i>max; i++) {

if (intto(i) == 1) break; } return i; }

171 Hy tm c chung ln nht ca tt c pt trong mng nguyn .


int sonhonhat(int a[], i nt n) { int min = a[0]; for (i nt i =1; i<n; i++) min = (min < a[i])? min: a[i]; return min; } voi d uocsocuami n(int a[], int n, int b[], int &m , int min) { m = 0; for (i nt i =1; i<=min; i++) { if (min % i == 0 ) { b[m]=i; m++; } } } int uocsocuamang(int a[], int b[], int n, int m) { for (i nt i =0; i<n ; i++) { if(a[i ]% b[m-1] !=0) { m--; i=-1 ; } if (m <0) return 1; } return b[m-1 ]; }

172/ Hy tm b i s chung nh nht trong mng nguyn .


int solonnhat(int A[], int n) { int max=A[0]; for (i nt i =1; i<n; i++) { if ((max == 0 )||(A[i]==0)) { printf("Ban da vi pham l oi the doi voi bai nay\n"); exit (0); } max=max>A[i]? max:A[i]; } return max; } int boichungcuamang (int A[], int n, int max) { int boiso = max ; for (i nt i =0; i<n; i++) { if (boiso % A[i] != 0) { boiso = boiso + max; i=-1 ; } } return boiso;

173 * Hy vit hm tm ch s xut hi n t nht trong mng .


int ChuSo(int a[], int n) { int i,So[10]={0},donvi,temp; for (i =0;i<n;i++) { temp = abs(a[i]); do { donvi = temp% 10; temp = temp/10; So[donvi ]++; } while (temp!=0 ); } int VTMax = 0; for (i =0; i <10 ; i++) { VTMax = (So[VTMax]>So[i ])?VTMax:i; } return VTMax; }

174 * Hy vit hm li t k cc cp gi tr (a,b) trong mng tha k a<=b .


voi d LietKe(int a[], int n) { int i,j; for (i =0;i<n;i++) { for (j=i+1;j<n;j++) { if (a[i]<a[j] || a[i]==a[j]) { printf("\nCap <% d,% d> vi tri <a[% d],a[% d]>",a[i],a[j],i ,j); } } } }

175 * Hy vit hm tm 2 gi tr g n nhau nht trong mng.


voi d LietKe(int a[], int n) { int i,j,kcgn = (abs)(a[0] - a[1]); for (i =0;i<n;i++) { for (j=i+1;j<n;j++) { if ((abs)(a[i ]-a[j])<kcgn) { kcgn = (abs)(a[i]-a[j]); } } } printf("Nhung cap gia tri gan nhau nhat: \n"); for (i =0;i<n;i++) { for (j=i+1;j<n;j++) { if ((abs)(a[i ]-a[j])==kcgn) { printf("\t<% d,% d> vi tri <a[% d],a[% d]>\n",a[i],a[j],i,j); } } } }

Cc bi tp tm ki m v li t k 176/Lit k cc s m trong mng s thc .


voi d xuatk q(fl oat a[],int m) { for (i nt i =0;i<m;i++) { if (a[i]<0 ) printf(" % .2f ", a[i]); } }

177/ Lit k cc s trong mng thc thuc [x,y] cho trc .


voi d LietKetTrongDoanXY(fl oat a[], int n, float x, fl oat y) { for (i nt i =0; i<n; i++) { if (x<=a[i] && a[i]<=y) { printf(% .2f",a[i]); } } }

178 Li t k cc s chn trong mng nguyn thu c [x,y] .


voi d LietKetChanTrong DoanXY(int a[], int n, int x, int y) { for (i nt i =0; i<n; i++) { if (a[i]% 2 == 0 &&x<=a[i] && a[i]<=y) { printf(%4 d",a[i ]); } } }

179/ Lit k cc s tha k ln hn tr tuyt i ca s ng lin sau n .


voi d LietKe(int a[], int n) { int flag = 0; for (i nt i =0; i<n; i++) { if (a[i]>abs(a[i-1 ])) { fl ag =1; printf(" % 4d", a[i]); } } if (flag == 0) { printf("Mang ko co gia tri do"); return; } }

180 Li t k cc gi tr th a: nh hn tr tuyt i ca gi tr ng li n sau v ln hn gi tr ng lin trc n 181 Li t k s chn c t nht 1 ln cn cng l gi tr chn 182 Li t k cc s c t nht 1 ln cn tri du v i n 183 Li t k v tr m gi tr ti l gi tr ln nht 184 Li t k v tr ca s nguyn t 185 Li t k v tr ca s chnh phng 186 Li t k v tr m gi tr bng gi tr m u tin

187 Li t k v tr m gi tr bng gi tr dng nh nht 188 Li t k v tr chn ln nht 189 Li t k gi tr m gi tr c ch s u tin l ch s l 190 Li t k gi tr tan ch s l 191 Li t k cc gi tr cc i. Cc i khi ln hn cc pt ln cn 192 Li t k gi tr c ch s u tin l chn 193 Li t k gi tr c dng 3^k. Nu mng ko c th tr v 0 194 Li t k cc c p gi tr g n nhau nht 195 Li t k cc b 3 gi tr (a,b,c) th a a=b+c. v d: (6,2,4) 196 Li t k cc s m 197 Li t k cc ch s u l l 198 Li t k cc v tr m ti l gi tr max 199 Li t k v tr m gi tr l s nguyn t K thut tnh t ng 200 T ng cc pt trong mng
int tong(int A[], int n) { int s=0; for (i nt i =0; i<n; i++) { s = s + A[i]; } return s; }

201/ T ng cc pt dng trong mng


int Tong (int A[], i nt n) { int s = 0; for (i nt i =0; i<n; i++) { if (A[i]>0 ) { s=s+A[i ]; } } return s; }

202/ T ng cc pt c ch s u l ch s l
int daule(int n) { int donvi ; n=abs(n); while (n>=10) { donvi=n% 10; n=n/10; } if (n% 2==0) { return 0; return 1; } int tong daule(int A[], i nt n) { int s=0; for (i nt i =0; i<n; i++) { if (daule(A[i])==1) { s = s + A[i]; } } return s;

203/ T ng cc pt c ch s hng chc l 5


int hangchuc5(int n) { n = abs(n); n=n/10; int hangchuc=n% 10; if (hangchuc == 5) { return 1; } return 0; } int tong(int A[], int n) { int s=0; for (i nt i =0; i<n; i++) { if (hangchuc5(A[i])==1 ) { s = s + A[i]; } } return s; }

204/ T ng cc pt ln hn pt ng lin trc n


int tonggiatri(int A[], i nt n) { int s = 0 ; for (i nt i =1; i<n; i++) { if (A[i]>A[i-1]) { s=s+A[i ]; } } return s; }

205/ T ng cc pt ln hn tr tuyt i ca pt li n sau n


int tonggiatri(int A[], i nt n) { int s=0; for (i nt i =0; i<n-1; i++) { if ( A[i] > abs(A[i +1]) ) { s=s+A[i ]; } } return s; }

206/ T ng cc pt ln hn pt xung quanh


int tonggiatri(int A[], i nt n) { int s=0; for (i nt i =0; i<n; i++) { if (i==0 && A[i]>A[i+1]) {

s = s + A[i]; } else if (i!=0 && A[i]>A[i+1] && A[i] > A[i-1]) { s = s + A[i]; } else if (i==n-1 && A[i] > A[i-1]) { s = s + A[i]; } } return s; }

207/ T ng cc pt cc tr Cc tr l pt khi n ln ho c nh hn pt xung quanh


int tongcuctri (int A[], int n) { int s=0; for (i nt i = 0; i <n; i++) { if (i==0 && A[i]!=A[i +1]) { s = s + A[i]; } else if (i==n-1 && A[i]!=A[i -1]) { s = s + A[i]; } else if ((A[i]<A[i+1] && A[i ]<A[i-1 ]) || (A[i]>A[i+1] && A[i]>A[i-1]) ) { s = s + A[i]; } } return s; }

208/ T ng cc pt chnh phng


int sochinhphuong(int n) { int can = sqrt(n); if (can*can == n) return 1; return 0; } int Tong(int* A, int n) { int s=0; for (i nt i = 0; i <n; i++) { if (sochinhphuong(A[i])==1) { s=s+A[i ]; } } return s; }

209/ T ng cc pt i x ng
int sodoixung(int n) { int donvi , tam = n; int sodaonguoc = 0; while(tam!=0) { donvi = tam% 10; sodaonguoc = sodaonguoc*10 + donvi;

tam = tam/10; } if (sodaonguoc == n) { return 1; } return 0; } int tong(int A[], int n) { int s=0; for (i nt i = 0; i <n; i++) { if (sodoixung(A[i])==1) { s=s+A[i ]; } } return s; }

210/ T ng cc pt c ch s u l chn
int sodauchan(int n) { while(n>=10) { n=n/10; } if (n% 2 == 0) { return 1; } return 0; } int tong(int A[], int n) { int s=0; for (i nt i = 0; i <n; i++) { if (sodauchan(A[i])==1) { s=s+A[i ]; dem ++; } } return s; }

211/ Trung bnh c ng cc s nguyn t


int songuyento(int n) { for(int i=2; i<n-1; i ++) { if (n % i == 0) return 0; } return 1; } float TBCong (int A[], int n) { int s=0; fl oat dem=0; for (i nt i = 0; i <n; i++) { if (songuyento(A[i])==1 ) { s=s+A[i ];

dem ++; } } if (dem == 0) { printf("Mang ko co so thoa yeu cau de"); return 0; } return s/dem; }

212/ Trung bnh c ng cc s dng


float TrungBinhCong (int A[], int n) { int s=0; fl oat dem=0; for (i nt i = 0; i <n; i++) { if (A[i]>0 ) { s=s+A[i ]; dem ++; } } if (dem == 0) { printf("Mang ko co so thoa yeu cau de"); return 0; } return s/dem; }

213/ Trung bnh c ng cc s ln hn x


float TBCong (int A[], int n, int x) { int s=0; fl oat dem=0; for (i nt i = 0; i <n; i++) { if (A[i]>x) { s=s+A[i ]; dem ++; } } if (dem == 0) { printf("Mang ko co so thoa yeu cau de"); return 0; } return s/dem; }

214/ Trung bnh nhn cc s dng


float TB NhanDuong(i nt A[], int n, int m) { int T=1; fl oat dem=0; for (i nt i = 0; i <n; i++) { if (A[i]>0 ) { T*=A[i]; dem ++; } }

if (dem == 0) { printf("Mang ko co so thoa yeu cau de"); return 0; } return pow(T,1.0/ dem); }

215 (*) Kho ng cch trung bnh gia cc gi tr trong mng


double tong(int A[], int n) { int s=0; int y=0; for (i nt i = 0; i <n; i++) { for (int j=i +1;i<n;j++) { s = s + abs(A[i ]-A[i+1 ]); y++; } } return pow(s,1.0/y); }

K thut m 216/ m s lng chn trong mng


int demsochan(int a[], int n) { int dem = 0; for (i nt i =0; i<n; i++) { if (a[i]% 2 == 0) { dem ++; } } return dem; }

217/ m s dng chia h t cho 7 trong mng


int demsochan(int a[], int n) { int dem = 0; for (i nt i =0; i<n; i++) { if (a[i]>0 && a[i]% 7 == 0) { dem ++; } } return dem; }

218/ m s i x ng trong mng


int SoDoiXung(int n) { int DonVi=0; int DaoNguoc = 0; int tam = n; while (tam>0) { DonVi = tam % 10; tam = tam / 10; DaoNguoc = DaoNguoc*10 + DonVi; } if (DaoNguoc == n)

{ return 1; } return 0; } int dem (int a[], int n) { int dem = 0; for (i nt i =0; i<n; i++) { if (a[i]<0 ) { break; } if (SoDoiXung(a[i ])==0) { dem ++; } } return dem; }

219/ m s ln xut hi n ca gi tr x trong mng


int dem (int a[], int n,int x) { int dem = 0; for (i nt i =0; i<n; i++) { if (a[i] ==x) { dem ++; } } return dem; } 220 m s lng gi tr t n cng b ng 5 trong m ng int dem (int a[], int n) { int dem = 0; for (i nt i =0; i<n; i++) { if (a[i]% 10 == 5) { dem ++; } } return dem; }

221/ Cho bit s tng quan gia s lng chn v l trong mng Hm tr v 1 trong 3 gi tr -1, 0, 1 Gi tr -1 l chn nhiu hn l Gi tr 0 l chn == l Gi tr 1 l chn t hn l .
int SoSanhChanLe(int a[], int n) { int demchan = 0; for (i nt i =0; i<n; i++) { if (a[i]% 2 == 0) { demchan++; } } if (demchan > n - demchan) {

return -1; } else if (n - demchan == demchan) { return 0; } return 1; }

222/ m pt ln hn hay nh hn pts xung quanh trong mng


int Dem(int A[], int n) { int i=0,j=0, DemTam=0; for (i =0; i <n; i++) { if (i==0 && A[i]!=A[i +1]) { DemTam++; } else if ( i == n-1 && A[i-1]!=A[i]) { DemTam++; } else if ((A[i-1]>A[i] && A[i]<A[i+1 ]) || (A[i-1]<A[i] && A[i]>A[i+1]) ) { DemTam++; } } return DemTam; }

223: m s nguyn t trong mng


int SoNguyenTo(i nt a) { if (a<=1 ) { return 0; } for (i nt i =2; i<a; i++) { if (a% i==0) { return 0; } } return 1; } int Dem(int a[], int n) { int i=0, DemTam=0; for (i =0; i <n; i++) { if (SoNguyenTo(a[i])==1) { DemTam++; } } return DemTam; }

224/ m s hon thi n trong mng


int sohoanthien(int n) { int tong=0 ;

for (i nt i =1 ; i <n; i++) if(n% i==0) tong = tong + i; if (tong == n) return 1; return 0; } int Dem(int a[], int n) { int i=0, DemTam=0; for (i =0; i <n; i++) { if (sohoanthien(a[i])==1) { DemTam++; } } return DemTam; }

225/ m s lng gi tr ln nht c trong mng


int Dem(int a[], int n) { int i=0,DemTam=0; int Max = a[0]; for (i =0; i <n; i++) { if (Max == a[i]) { DemTam++; } else if (Max < a[i]) { Max = a[i]; DemTam = 1; } } return DemTam; }

226/ Hy xc nh s lng pt k nhau m c 2 u chn


int Dem(int a[], int n) { int i=0,DemTam=0; for (i =0; i <n-1 ; i++) { if (a[i]% 2==0 && a[i+1]% 2==0) { DemTam++; } } if (DemTam!=0) { DemTam++; } return DemTam; }

227/ Hy xc nh s lng pt k nhau m c 2 tri du


int Dem(int a[], int n) { int i=0,DemTam=0; for (i =0; i <n-1 ; i++) {

if (a[i]*a[i+1]<0) { DemTam++; } } if (DemTam!=0) { DemTam++; } return DemTam; }

228/ Hy xc nh s lng pt k nhau m s ng sau cng du s ng trc v c gtr tr tuy t i ln hn .


int Dem(int a[], int n) { int i=0,DemTam=0; for (i =1; i <n; i++) { if (a[i]*a[i-1]>0 && abs(a[i-1])<abs(a[i])) { DemTam++; } } return DemTam; }

229/ m s lng cc gi tr phn bi t c trong mng .


int Dem(int a[], int n) { int i,j,DemTam=0,test; for (i=0; i<n; i++) { for (test=1,j=i+1;j<n;j++) { i f (a[i ]==a[j]) { test =0; break; } } i f (test == 1) { DemTam++; } } return DemTam; }

230/ Lit k tn sut xut hi n cc gi tr xut hi n trong mng (m i gi tr lit k 1 ln)


voi d lietke(int *a, int n) { for (i nt i =0; i<n; i++) { for (int dem=0, j=0; j<n; j++) { if (a[i] == a[j]) { if (j<i) { break; } else { dem++; } }

} if (dem!=0 ) { printf("Gi a tri % d co tan suat xuat hien la % d\n", a[i ], dem ); } } }

231/ Hy li t k cc gi tr xut hin ng 1 ln trong mng


voi d lietke(int a[], int n) { int c[100]; int dem[100]; int vitri = 0; for (i nt i =0; i<n; i++) { for (int demtam=0, j=0; j<n; j++) { if (a[i] == a[j]) { if (j<i) { break; } else { demtam++; } } } if (demtam!=0 ) { c[vi tri] = a[i ]; dem[vitri ] = demtam; vi tri++; } } printf("Gi a tri chi xuat hien dung 1 l an\n\t"); for (i nt k=0 ; k<vi tri; k++) { if (dem[k] == 1) { printf(" % d ", c[k]); } } }

232/ hy li t j cc gi tr xut hi n qu 1 ln (m i gi tr li t k 1 ln)


voi d lietke(int a[], int n) { int c[100]; int dem[100]; int vitri = 0; for (i nt i =0; i<n; i++) { for (int demtam=0, j=0; j<n; j++) { if (a[i] == a[j]) { if (j<i) { break; } else { demtam++; } }

} if (demtam!=0 ) { c[vi tri] = a[i ]; dem[vitri ] = demtam; vi tri++; } } printf("Gi a tri chi xuat hien dung 1 l an\n\t"); for (i nt k=0 ; k<vi tri; k++) { if (dem[k] != 1) { printf(" % d ", c[k]); } } }

233/ Hy li t k tn sut cc gi tr xut hi n trong mng


voi d lietke(int *a, int n) { for (i nt i =0; i<n; i++) { for (int dem=0, j=0; j<n; j++) { if (a[i] == a[j]) { if (j<i) { break; } else { dem++; } } } if (dem!=0 ) { printf("Gi a tri % d co tan suat xuat hien la % d\n", a[i ], dem ); } } }

234/ Cho 2 mng a,b. m pt ch xut hi n 1 trong 2 mng


int Dem(int a[],i nt b[], int na,int nb) { int i,j,test,DemTam=0; for (i =0; i <na; i ++) { test=1; for (j=0; j<nb; j++) { if (a[i]==b[j]) { test = 0; break; } } if (test==1) { DemTam++; } } for (i =0;i<nb;i++) { test=1; for (j=0; j<na;j++) {

if (b[i]==a[j]) { test=0; break; } } if (test==1) { DemTam++; } } return DemTam; }

235/ Cho 2 mng a,b. Lit k pt xut hi n 1 trong 2 mng


voi d LietKe(int a[],int b[], int na,int nb) { int i,j; for (i =0; i <na; i ++) { for (j=0; j<nb; j++) { if (a[i]==b[j]) { printf("trong Mang A co ptu a[% d]=% d ko nam trong mang B\n",i,a[i]); break; } } } for (i =0;i<nb;i++) { for (j=0; j<na;j++) { if (b[i]==a[j]) { printf("trong Mang B co ptu b[% d]=% d ko nam trong mang A\n",i,b[i]); break; } } } }

236 * Cho 2 mng a,b. Hy cho bi t s ln xut hi n ca mng a trong mng b


int Dem(int a[],i nt b[], int na,int nb) { int i,j,h,test,DemTam=0 ;; for (i =0; i <nb; i++) { if (b[i ]==a[0] && nb-i >=na) { h=i; for (test=1,j=0; j<na; j++,h++) { if (a[j] != b[h]) { test=0; break; } } if (test==1) { DemTam++; } } } return DemTam; }

237/ Tm 1 gi tr c s ln xut hi n nhi u nht trong mng

int MotGi aTriXuatHienNhieuNhat(int a[],int n) { int flag [100]={0},i,j,Dem1; for (i =0; i <n ; i++) { if (flag [i]==0) { for (Dem1=0,j=0;j<n;j++) { if (a[i] == a[j]) { fl ag[j] = Dem1 ++; } } } } int XuatHienMax = flag[0],vt=0 ; for (i =0;i<n;i++) { if (XuatHienMax < flag[i ]) { XuatHienMax = flag[i ]; vt = i; } } return a[vt]; }

238 * Hy li t k cc gi tr c s ln xut hi n nhi u nht trong mng


voi d LietKe(int a[],int n) { int flag [100]={0},i,j,Dem1; //Tien hanh gan m ng fl ag == nhung con so dem dc for (i =0; i <n ; i++) { if (flag [i]==0) { for (Dem1=0,j=0;j<n;j++) { if (a[i] == a[j]) { fl ag[j] = Dem1 ++; } } } } //flag nao co so lon nhat thi chinh la vi tri so dem dc nhieu nhat trong ma tran int XuatHienMax = flag[0]; for (i =0;i<n;i++) { if (XuatHienMax < flag[i ]) { XuatHienMax = flag[i ]; } } //Liet ke cac so xuat hien nhieu nhat printf("So xuat hien nhieu nhat trong mang : ") for (i =0;i<n;i++) { if (XuatHienMax == fl ag[i]) { printf(" % d ",a[i]); } } }

239/ Hy m s lng s nguyn t phn bi t trong mng

int SoNguyenTo(i nt a) { if (a<=1) { return 0; } for (int i =2; i<a; i++) { if (a% i==0) { return 0; } } return 1; } int Dem (int a[], int n) { int i,j, test,DemTam=0; for (i=0;i<n;i++) { if (SoNguyenTo(a[i])==1 ) { for (test=1,j=i +1;j<n;j++) { if (a[i] == a[j] ) { test =0; break; } } } if (test == 1) { DemTam++; } } return DemTam; }

K thut t c hi u 240/ Ktra mng c gi tr 0 hay ko?C tr v 1, ko c tr v 0


int kiemtra0(int A[] , int n) { int flag = 0; //xem nh m ng ko c gi tr 0 for(int i=0 ; i<n ;i++) { if(A[i ] == 0 ) { fl ag = 1 ; } } return flag; }

241/ Ktra mng c 2 gi tr 0 lin ti p ko? C tr v 1, ko c tr v 0 .


int kiemtra0lientiep(int A[] , int n) { int flag = 0; for(int i=0 ; i<n ;i++) { if(A[i ] == 0 && A[i+1] == 0) { fl ag = 1 ; break; } } return flag;

242/ Ktra mng c s chn ko? C tr v 1, ko c tr v 0 .


int kiemtrachan(int A[] , i nt n) { int flag = 0; for(int i=0 ; i<n ;i++) { if(A[i ]% 2 == 0) { fl ag = 1 ; break; } } return flag; }

243/ Ktra mng c s ng t ko? C tr v 1, ko c tr v 0 .


int SoNguyenTo(i nt a) { if (a<=1 ) { return 0; } for (i nt i =2; i<a; i++) { if (a% i==0) { return 0; } } return 1; } int kiemtrasonguyento(int A[] , int n) { int flag = 0; for(int i=0 ; i<n ;i++) { if(songuyento(A[i]) == 1) { fl ag = 1 ; } } return flag; }

244/ Ktra mng th a tnh cht: mng ko c s hon thi n ln hn 256. C tr v 1, ko c tr v 0


int sohoanthien(int n) { int tong=0 ; for (i nt i =1 ; i <n; i++) if(n% i==0) tong = tong + i; if (tong == n) return 1; return 0; } int kttinhchat(int A[] , int n) { int flag = 0; for(int i=0 ; i<n ;i++) { if(sohoanthien(A[i])==1 && A[i] < 256) { fl ag = 1 ; break; }

} return flag; }

245/ Ktra mng c ton s chn ko? C tr v 1, ko c tr v 0


int kttoanchan(int A[] , int n) { int flag = 1; for(int i=0 ; i<n ;i++) { if(A[i ]% 2!=0) { fl ag = 0 ; break; } } return flag; }

246/ Ktra mng c i x ng ko? C tr v 1, ko c tr v 0 .


int ktdoixung(int A[] , int n) { int flag = 1; for(int i=0 ; i<n/2 ;i++) { if(A[i ] != A[n-i-1]) { fl ag = 0 ; break; } } return flag; }

247/ Ta nh ngha 1 mng c tnh cht l , khi t ng ca 2 pt lien ti p lun l l.Ktra mng c tnh chn hay l?
int kttoanle(int A[] , int n) { int flag = 1; for(int i=0 ; i<n-1 ;i++) { if(((A[i]+A[i+1 ])% 2)==0) { fl ag = 0 ; break; } } return flag; }

248/ Ktra mng c tng dn hay ko?


int kttang dan(int A[] , int n) { int flag = 1; for(int i=0 ; i<n-1 ;i++) { if(A[i ] > A[i+1]) { fl ag = 0 ; break; } } return flag; }

249/ Ktra mng c gim dn hay ko?


int ktgiam(int A[] , i nt n) {

int flag = 1; for(int i=0 ; i<n-1 ;i++) { if(A[i ] < A[i+1]) { fl ag = 0 ; break; } } return flag; }

250/ Hy cho bi t cc pt trong mng c lp thnh cp s c ng ko? N u c ch ra cng sai d.


int ktcapsocong(i nt A[] , int n , int &d) { d = A[1 ] - A[0]; int flag = 1; for(int i=2 ; i<n-1 ;i++) { if((A[i+1] - A[i ])!=d) { fl ag = 0 ; break; } } return flag; }

251/ Hy cho bi t cc pt trong mng c bng nhau ko?


int ktbangnhau(int A[] , i nt n) { int flag = 0; for(int i = 0 ; i < n-1 ;i++) { for(int j = i + 1 ; j < n ;j++) { if(A[i ] == A[j]) { fl ag = 1; break; } } } return flag; }

252/ Ta nh ngha 1 mng c g i l dng sng, khi pt c tr s I ln hn hoc nh hn 2 pt xung quanh. Hy vi t hm ktra mng c sng hay ko?
int ktdangsong(int A[] , i nt n) { int flag = 1; for(int i = 1 ; i < n-1 ; i ++) { if((A[i-1] > A[i ] && A[i] > A[i+1]) || (A[i-1] < A[i] && A[i] < A[i+1 ])) { fl ag = 0 ; break; } } return flag; }

253/ Hy cho bi t tt c pt trong mng a c nm trong mng b ko?


int ktAnamtrongB(int A[] , int B[] , int n , int m) { int flag = 0; int dem = 0; for(int i = 0 ; i < n ; i ++)

{ for(int j = 0 ; j < m ;j++) { if(A[i ] == B [j]) { dem++; } } } if(dem == n) { fl ag = 1 ; } return flag; }

254/ hy m gi tr trong mng th a: ln hn tt c cc gi tr ng ng trc n


int demptlndungsau(int A[] , int n) { int dem = 0; for(int i = 1 ; i < n ; i ++) { int flag = 1; for(int j = 0; j < i ;j++) { if(A[i ] < A[j] || A[i ] == A[j]) { fl ag = 0; } } if(flag == 1) { dem++; } } return dem; }

K thut s p x p 255/ Sp x p mng tng dn


voi d sapxep(int a[],int n) { for (i nt i =0;i<n;i++) { for (int j=i +1;j<n;j++) { if (a[i]>a[j]) { int temp=a[i]; a[i] = a[j]; a[j]=temp; } } } }

256/ s p x p mng gim dn


voi d sapxep(int a[],int n) { for (i nt i =0;i<n;i++) { for (int j=i +1;j<n;j++) { if (a[i]<a[j]) {

int temp=a[i]; a[i] = a[j]; a[j]=temp; } } } }

257/ Sp x p l tng dn nhng gi tr khcgi nguyn v tr


voi d sapxep(int a[],int n) { for (i nt i =0;i<n;i++) { if (a[i]% 2!=0) { for (int j=i +1;j<n;j++) { if (a[j]% 2!=0 && a[i ]>a[j]) { int temp=a[i]; a[i] = a[j]; a[j]=temp; } } } } }

258/ Sp x p s nguyn t tng dn nhng gi tr khc gi nguyn v tr


int SoNguyenTo(i nt a) { if (a<=1 ) { return 0; } for (i nt i =2; i<a; i++) { if (a% i==0) { return 0; } } return 1; } voi d sapxep(int a[],int n) { for (i nt i =0;i<n;i++) { if (SoNguyenTo (a[i] ) ==1) { for (int j=i +1;j<n;j++) { if (SoNguyenTo (a[j] ) ==1 && a[i]>a[j]) { int temp=a[i]; a[i] = a[j]; a[j]=temp; } } } } }

259/ Sp x p s han thi n gim dn nhng gi tr khc gi nguyn v tr


int sohoanthien(int n) { int tong=0 ;

for (i nt i =1 ; i <n; i++) if(n% i==0) tong = tong + i; if (tong == n) return 1; return 0; } voi d sapxep(int a[],int n) { for (i nt i =0;i<n;i++) { if (sohoanthien (a[i ] ) ==1) { for (int j=i +1;j<n;j++) { if (sohoanthien (a[j] ) ==1 && a[i ]<a[j]) { int temp=a[i]; a[i] = a[j]; a[j]=temp; } } } } }

260/ Cho 2 mng a,b. Hy cho bi t mng b c phi l hon v ca mng a ko?
voi d sapxep(int a[],int n) { for (i nt i =0;i<n;i++) { for (int j=i +1;j<n;j++) { if (a[i]>a[j]) { int temp=a[i]; a[i] = a[j]; a[j]=temp; } } } } voi d KetQua(int a[],int b[],i nt na,int nb) { if (na != nb) { printf("ko phai!"); return ; } sapxep(a,na); sapxep(b,nb); for (i nt i =0;i<na;i++) { if (a[i]!=b[i]) { printf("ko phai"); return; } } printf("phai !"); return; }

261 Sp x p s dng tng dn, cc s m gi nguyn v tr


voi d sapxep(int a[],int n) { for (i nt i =0;i<n;i++) {

if (a[i]>0 ) { for (int j=i +1;j<n;j++) { if (a[j]>0 && a[i]>a[j]) { int temp=a[i]; a[i] = a[j]; a[j]=temp; } } } } }

262/ Sp x p chn, l tng dn nhng v tr tng i gia cc s ko thay i


voi d sapxep(int a[],int n) { for (i nt i =0;i<n;i++) { for (int j=i +1;j<n;j++) { if (((a[i]% 2==0 && a[j]% 2==0)||(a[i]% 2!=0 && a[j]% 2!=0)) && a[i]>a[j]) { int temp=a[i]; a[i] = a[j]; a[j]=temp; } } } }

263/ Sp x p s dng tng dn, m gim dn. V tr tng i ko i


voi d sapxep(int a[],int n) { for (i nt i =0;i<n;i++) { for (int j=i +1;j<n;j++) { if (a[i]>0 && a[j]>0 && a[i ]>a[j]) { int temp=a[i]; a[i] = a[j]; a[j]=temp; } else if (a[i]<0 && a[j]<0 && a[i ]<a[j]) { int temp=a[i]; a[i] = a[j]; a[j]=temp; } } } }

264 Tr n 2 mng tng thnh 1 mng c sp xp tng


voi d sapxep(int a[],int n) { for (i nt i =0;i<n;i++) { for (int j=i +1;j<n;j++) { if (a[i]>a[j]) { int temp=a[i]; a[i] = a[j]; a[j]=temp;

} } } } voi d TronMang(int a[], int b[], int c[], int na, int nb, int &nc) { nc = na + nb; sapxep(a,na); //Sap xep tang mang A sapxep(b,nb); //Sap xep tang mang B int vta=0,vtb=0; for (i nt i =0;i<nc;i++) { if (vta < na && vtb < nb) { if (a[vta] < b[vtb]) { c[i] = a[vta]; vta++; } else { c[i] = b[vtb]; vtb++; } } else if (vtb == nb) { c[i] = a[vta]; vta++; } else { c[i] = b[vtb]; vtb++; } } }

265/ Cho 2 mng tng. Hy tr n thnh 1 mng gim dn


voi d sapxep(int a[],int n) { for (i nt i =0;i<n;i++) { for (int j=i +1;j<n;j++) { if (a[i]>a[j]) { int temp=a[i]; a[i] = a[j]; a[j]=temp; } } } } voi d TronMang(int a[], int b[], int c[], int na, int nb, int &nc) { nc = na + nb; sapxep(a,na); //Sap xep tang mang A sapxep(b,nb); //Sap xep tang mang B int vta=na-1, vtb=nb-1; for (i nt i =0;i<nc;i++) { if (vta >= 0 && vtb >= 0) { if (a[vta] > b[vtb]) { c[i] = a[vta]; vta--;

} else { c[i] = b[vtb]; vtb--; } } else if (vtb < 0) { c[i] = a[vta]; vta--; } else { c[i] = b[vtb]; vtb--; } } }

K thut thm 266/ Thm 1 pt x vo mng ti v tr k .


voi d themgiatri(int a[], i nt &n, i nt x, int k) { for (i =n; i>k; i--) { a[i] = a[i -1]; } a[k] = x; n++; }

267/ Hm nhp mng sao cho khi nhp xong th gi tr trong mng s p x p gim dn .
voi d nhapmang(int a[], int &n) { printf("Nhap mang 1 chieu\n"); printf("Nhap n : "); scanf("% d",&n); while (n<=1 ) { printf("Nhap l ai n : " ); scanf("% d",&n); } int i,j,k; for (i =0; i <n; i++) { printf("\tNhap a[% d] : ", i); scanf("% d",&a[i]); for (j=0; j<i;j++) { if (a[i]>a[j]) { int temp = a[i]; for (k = i; k>j; k--) { a[k] = a[k-1]; } a[j] = temp; break; } } } }

268/ Hy to mng b t mng a cc gi tr 0,1 mng c tnh chn l . 269/ Thm x vo trong mng tng nhng vn gi nguyn tnh tng ca mng .
voi d ChenXMang Tang(int a[], int &n, int x)

{ int i,j; for (i =0; i <n;i ++) { if (x>a[i]) { int temp = x; for (k = n; k>i ; k--) { a[k] = a[k-1]; } a[i] = temp; break; } } n++; }

270/ Nhp mng sau khi nhp xong t s p xp tng dn


voi d nhapmang(int a[], int &n) { printf("Nhap mang 1 chieu\n"); printf("Nhap n : "); scanf("% d",&n); while (n<=1 ) { printf("Nhap l ai n : " ); scanf("% d",&n); } int i,j,k; for (i =0; i <n; i++) { printf("\tNhap a[% d] : ", i); scanf("% d",&a[i]); for (j=0; j<i;j++) { if (a[i]>a[j]) { int temp = a[i]; for (k = i; k>j; k--) { a[k] = a[k-1]; } a[j] = temp; break; } } } }

K thut xa 271/ Xa cc pt c ch s k trong mng


voi d Xoavitri(int a[], i nt &n, int k) { for(int i=k; i<n;i++) { a[i] = a[i +1]; } n--; }

272/ hy xa tt c s ln nht trong mng cc s thc


voi d xoavitri(float a[], int &n, int k) { for (i nt i =k; i<n; i ++) {

a[i] = a[i +1]; } n--; } float lonnhat(float a[], int n) { fl oat max = a[0]; for (i nt i =1; i<n ; i++) { max=(max<a[i ])?a[i]:max; } return max; } voi d xoamang(fl oat a[], int &n) { fl oat max = lonnhat(a,n); for (i nt i =0; i<n; i++) { if (a[i]==max) { xoavi tri(a,n,i ); i--; } } }

273/ Xa tt c s m trong mng .


voi d xoavitri(float a[], int &n, int k) { for (i nt i =k; i<n; i ++) { a[i] = a[i +1]; } n--; } voi d xoamang(fl oat a[], int &n) { for (i nt i =0; i<n; i++) { if (a[i]<0 ) { xoavi tri(a,n,i ); i--; } } }

274/ Xa tt c s chn trong mng .


voi d xoavitri(float a[], int &n, int k) { for (i nt i =k; i<n; i ++) { a[i] = a[i +1]; } n--; } voi d xoamang(fl oat a[], int &n) { for (i nt i =0; i<n; i++) { if (a[i]% 2==0) { xoavi tri(a,n,i ); i--; } } }

275/ Xa tt c s chnh phng trong mng .


voi d xoavitri(int a[], i nt &n, int k) { for (i nt i =k; i<n; i ++) { a[i] = a[i +1]; } n--; } int sochinhphuong(int n) { int a = (int)s qrt(n); if (a* a == n) { return 1; } return 0; } voi d xoamang(int a[], int &n) { for (i nt i =0; i<n; i++) { if (sochinhphuong(a[i])==1) { xoavi tri(a,n,i ); i--; } } }

276/ Xa tt c cc pt trng v i x .
voi d xoavi tri(fl oat a[], int &n, float k) { for (int i=k; i <n; i++) { a[i ] = a[i+1]; } n--; } 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/ Xa tt c s nguyn t trong mng .


voi d xoavi tri(int a[], int &n, int k) { for (int i=k; i <n; i++) { a[i] = a[i +1]; } n--; } int songuyento(int n) { for (int i=2; i <n; i++) { if (n% i==0) return 0; }

return 1 ; } voi d xoamang(int a[], int &n) { for (int i=0; i <n; i++) { if (a[i]>=2) { i f (songuyento(a[i ])==1) { xoavitri(a,n,i); i --; } } } }

278/ xa tt c pt trng nhau trong mng v ch gi li duy nht 1 pt .


voi d xoavitri(int a[], i nt &n, int k) { for (i nt i =k; i<n; i ++) { a[i] = a[i +1]; } n--; } 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/ Xa tt c pt xut hin nhiu hn 1 ln trong mng .


voi d xoavitri(int a[], i nt &n, int k) { for (int i=k; i <n; i++) { a[i] = a[i+1]; } n--; } voi d xoamang(int a[], int &n) { for (int i=0; i <n-1; i++) { for(int test = 0,j=i+1; j<n;j++) // xa pt t i j { if (a[i]==a[j]) { xoavi tri(a,n,j); j--; test=1; } } if (test == 1) { xoavi tri(a,n,i); //Xa lun chnh n

} } }

K thut x l mng 280/ Hy a s 1 v u mng .


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 duaMotvedau(int a[], int n) { for (i nt i =0; i<n; i++) { if (a[i] == 1) { DoiCho(a,n,i); // vi tri i } } }

281/ Hy a chn v u, l v cu i, pt 0 nm gia mng .


voi d duachanvedau(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 sapxep(int a[], int n) { int i; int vitrichancuoi ; for (i =0; i <n; i++) { if (a[i] % 2 == 0 && a[i]!=0) { duachanvedau(a,i); // vi tri i } } for (i =0; i <n; i++) { if (a[i]% 2!=0) { vi trichancuoi = i; break; } } for (i ; i<n; i ++) { if (a[i] == 0 ) {

dua0(a,i,vitrichancuoi); // vi tri i } } }

282/ a cc s chia h t cho 3 v u mng .


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 chiahetchoba(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 ngc mng 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 ngc th t cc s chn trong mng .


voi d hoanvi(i nt &a, int &b) { int tam = a; a = b; b =tam; } voi d daochan(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 ngc th t s dng trong mng .


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/ Dch tri xoay vng cc pt trong mng .


voi d dichtrai(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/ Dch phi xoay vng cc pt trong mng


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/Hy xut pt trong mng theo yu c u: chn vng, l trng .


voi d color (int a) { HANDLE mau; mau = GetStdHandle(STD_OUTPUT_ HANDLE); SetConsoleTextAttri bute(mau,a); } voi d XuatChanVang LeTrang(int a[], int n) { for (i nt i =0; i<n; i++) { if (a[i]% 2==0) { col or(14); printf("% 4d",a[i]); } else { col or(7); printf("% 4d",a[i]); } } }

289/ Xut mng: chn nm trn 1 hng, l nm hng tip theo .


voi d chanlehaihang(int a[], int n) { for (i nt i =0; i<n; i++)

{ if (a[i]% 2==0) { printf("% 4d",a[i]); } } printf("\n\t"); for (i =0; i <n; i++) { if (a[i]% 2!=0) { printf("% 4d",a[i]); } } }

290/ o ngc th t s chn v l trong mng nhng gi v tr tng i .


voi d hoanvi(i nt &a, int &b) { int tam = a; a = b; b =tam; } voi d daonguocchanle(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]); else if (a[i]% 2!=0 && a[j]% 2!=0) hoanvi (a[i],a[j]); } } }

291/ Bin i mng bng cch thay gi tr max = gi tr min v ngc li .


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; } else if (a[i]==min) { a[i]=max; } } }

292/ Bin i mng bng cch thay tt c pt trong mng bng s nguyn g n n nht .
voi d thaysogannhat(fl oat &n) {

int phannguyen = (int) (n) ; fl oat phanle = n - phannguyen; if (phanle <=0.5) { n = (fl oat)phannguyen; } else { n = (fl oat)phannguyen + 1; } } voi d biendoi(float a[], int n) { for (i nt i =0; i<n; i++) { thaysogannhat(a[i]); } }

K thut x l mng con 293/ Lit k tt c cc mng 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("\n"); } } }

294/ Lit k mng con c di ln hn 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("\n"); } } }

295/ Lit k dy con tng dn .


int ktramangtang (int b[], i nt nb) { for(int i=0; i<nb-1 ; i++) { if (b[i ]>b[i+1 ]) return 0; } return 1; } voi d xuatmangcon(int b[], int nb)

{ for(int i=0; i<nb; i++) { printf("% 4d", b[i]); } printf("\n"); } 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/ Lit k dy con tng v cha gi tr ln nht .


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; } return max; } int ktramangtang (int b[], i nt nb) { for(int i=0; i<nb-1 ; i++) { if (b[i ]>b[i+1 ]) return 0; } return 1; } voi d xuatmangcon(int b[], int nb) { for(int i=0; i<nb; i++) { printf("% 4d", b[i]); } printf("\n"); } int ktracomax(int b[], i nt nb,i nt max) { for (i nt i =0; i<nb;i++) { if (b[i ]==max) { return 1; } } return 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 (ktracomax(b,nb,max)==1) { xuatmangcon(b,nb); } } } } }

297/ Tnh t ng tng mng con tng .


int ktramangtang (int b[], i nt nb) { for(int i=0; i<nb-1 ; i++) { if (b[i ]>b[i+1 ]) return 0; } return 1; } voi d xuatmangcon(int b[], int nb) { for(int i=0; i<nb; i++) { printf(" % d ", b[i]); } } intt tongmangcon(int b[], i nt nb) { intt s=0; for (i nt i =0; i<nb; i++) { s = s + b[i]; } return 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; chieudaicon<=n; chieudaicon++) { 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\n", tong); }

} } }

298/ m mng con tng c di ln hn 1 .


int ktramangtang (int b[], i nt nb) { for(int i=0; i<nb-1 ; i++) { if (b[i ]>b[i+1 ]) return 0; } return 1; } voi d Demcontang(int a[], int n) { int chieudaicon, b[100], nb; int dem=0; for (i nt i =0; i<n; i++) { for (chieudaicon = 2+i; chieudaicon<=n; chieudaicon++) { for(int j=i; j<chieudaicon; j++) { b[nb]=a[j]; nb++; } if (ktramangtang(b,nb)==1) { dem++; } } } printf("\nTong so mang can ti m: % d\n", dem); }

299/ Lit k dy con ton dng v di ln hn 1 .


int ktramang duong(fl oat b[], int nb) { for(int i=0; i<nb; i++) if (b[i ]<0) return 0; return 1; } voi d xuatmangcon(fl oat b[], int nb) { for(int i=0; i<nb; i++) printf(" % .2f ", b[i]); printf("\n"); } 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; chieudaicon<=n; chieudaicon++) { for(int j=i; j<chieudaicon; j++) { b[nb]=a[j]; nb++; } if (ktramang duong(b,nb)==1) xuatmangcon(b,nb); }

} }

300/ m mng con gim .


int ktramanggiam(float b[], int nb) { for(int i=0; i<nb-1 ; i++) { if (b[i ]<b[i+1 ]) return 0; } return 1; } voi d Demcongiam(fl oat a[], int n) { int chieudaicon; fl oat b[100]; int nb; int dem=0; for (i nt i =0; i<n; i++) { for (chieudaicon = 1+i; chieudaicon<=n; chieudaicon++) { nb=0; for(int j=i; j<chieudaicon; j++) { b[nb]=a[j]; nb++; } if (ktramanggiam(b,nb)==1) dem++; } } printf("\nTong so mang con giam can ti m: % d\n", dem); }

301/ Cho bit mng a c phi l mng con trong mng b ko?
int Ktra(i nt a[], int b[], i nt na, int nb) { int i,j,test = 0; for (i =0; i <nb; i++) { if (b[i ]==a[0]) { int h = i; for (test=1, j=0; j<na;j++,h++) { if (a[j] != b[h]) { test = 0; break; } } if (test == 1) return test; // Mng a l con m ng b } } return test; }

302/ m s ln xut hi n mng a trong mng b .


int Dem(int a[], int b[], int na, int nb) { int i,j,test,dem=0;

for (i =0; i <nb; i++) { if (b[i ]==a[0]) { int h = i; for (test=1, j=0; j<na;j++,h++) { if (a[j] != b[h]) { test = 0; break; } } if (test == 1) dem++; } } return dem; }

303/ Dy con ton dng di nht .


voi d DayConToanDuongDaiNhat(int a[], i nt n) { int i,l,k,test,vt,pt=0; for (i =0;i<n;i++) { for (l=i; l <=n;l++) { for (test = 1,k=0; k<l ; k++) { if (a[k]<0) { test = 0; break; } } if (test == 1) { if (pt<k) { pt=k; vt=i ; } } } } printf("\nDay con duong dai nhat: "); for (vt; vt<pt; vt++) printf("% 4d",a[vt]); }

304 * Cho mng a, s nguyn M.Tm 1 mng con sao cho t ng cc pt bng 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("\nDay con co tong ptu bang M: "); for (k=0; k<l ; k++) printf("% 4d",a[k]); }

} } }

305 * Tm dy con ton dng c t ng ln nht .


voi d DayConToanDuong TongLonNhat(int a[], int n) { int i,l,k,s=0,Stam=0,test,vt,pt; for (i =0;i<n;i++) { for (l=i; l <=n;l++) { for (test=1,k=0; k<l ; k++) { Stam+=a[k]; if (a[k]<0) { test = 0; break; } } if (test == 1) { if (Stam>s) { s = Stam; vt = i; pt = k; } } } } printf("\nDay con duong co tong lon nhat: "); for (vt; vt<pt; vt++) printf("% 4d",a[vt]); }

306/ Tm mng con c t ng ln nht .


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("\nDay con co tong l on nhat: "); for (vt; vt<pt; vt++) printf("% 4d",a[vt]); }

Xy dng mng 307/ To mng b ch cha gi tr l t mng 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/ To mng b ch cha gi tr m t mng 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/ To mng b sao cho b[i] = t ng cc pt ln cn v i a[i] trong mng 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]; else if (i==n-1 ) b[nb] = a[i-1 ]; else b[nb] = a[i-1 ] + a[i+1]; nb++; } xuatmang(b,nb); }

310/ To mng b ch cha s nguyn t t mng a .


int SoNguyenTo(i nt a) { if (a<=1 ) return 0; for (i nt i =2; i<a; i++) if (a% i==0) return 0; return 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 -------Bi t ng hp nng cao cht c a mng 1 chi u 311/ To 1 mng ng u nhin v xut ra dy con tng dn di nht. Nu 2 dy con tng di bng nhau th xut dy con tng u tin .
#include <stdio.h> #include <stdli b.h> #include <ti me.h> voi d NhapMang(i nt a[], int &n) { n = rand()% 10; for (i nt i =0; i<n; i++) a[i] = rand()% 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 KetThuc) { int Vi TriBatDauTam =0, ViTri KetThucTam=0; int Dem =0, DemTam = 0; for (Vi Tri KetThucTam = 0; ViTri KetThucTam<n; ViTri KetThucTam++) { if (a[Vi Tri KetThucTam] <= a[ViTri KetThucTam+1]) { DemTam++; } else { if (DemTam>Dem) { Vi TriBatDau = Vi TriBatDauTam; Vi Tri KetThuc = Vi Tri KetThucTam; Dem = DemTam; } Vi TriBatDauTam = Vi Tri KetThucTam + 1 ; DemTam = 0; } } } voi d XuatDayCon(int a[], int Vi TriBatDau, int ViTri KetThuc) { for(int i=Vi TriBatDau; i<=Vi Tri KetThuc; i++) pri ntf("% 4d",a[i]); } voi d main() { srand((unsigned)ti me(NULL)); int n,a[100]; NhapMang (a,n); //Nh p m ng ng u nhin printf("Mang ngau nhien duoc tao: "); XuatMang(a,n); printf("\n"); //T m dy con tng di nht int Vi TriBatDau = -1, ViTri KetThuc = -1; TimDayConTangDan(a,n,Vi TriBatDau,Vi Tri KetThuc); //Xu t dy con tng vi 2 bi n Vi TriBatDau, Vi Tri KetThuc printf("Day con tang dai nhat: "); XuatDayCon(a,ViTriBatDau,ViTri KetThuc); }

You might also like