Professional Documents
Culture Documents
Mang Mot Chieu
Mang Mot Chieu
Y!m :nhatquai.theboy
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; }
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; }
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; }
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; }
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; }
} } } return max; }
[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]
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; }
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; }
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;
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; }
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; }
dem ++; } } if (dem == 0) { printf("Mang ko co so thoa yeu cau de"); return 0; } return s/dem; }
if (dem == 0) { printf("Mang ko co so thoa yeu cau de"); return 0; } return pow(T,1.0/ dem); }
{ 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; }
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) {
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; }
} if (dem!=0 ) { printf("Gi a tri % d co tan suat xuat hien la % d\n", a[i ], dem ); } } }
} 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]); } } }
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]; }
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; }
} 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; }
int flag = 1; for(int i=0 ; i<n-1 ;i++) { if(A[i ] < A[i+1]) { fl ag = 0 ; 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; }
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; }
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; } } } } }
} } } } 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++; } } }
} else { c[i] = b[vtb]; vtb--; } } else if (vtb < 0) { c[i] = a[vta]; vta--; } else { c[i] = b[vtb]; vtb--; } } }
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++; }
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--; } } }
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--; } } }
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 --; } } } }
} } }
dua0(a,i,vitrichancuoi); // vi tri i } } }
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]); } } } }
{ 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]); } } }
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]); } }
{ 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); } } } }
{ 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); } } } } }
} } }
} }
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; }
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; }
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]); }
} } }
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); }
----------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); }