mang 1 chieu-1

Chuyên đề mảng 1 chiều

Y!m :nhatquai.the boy

128/ Viế t hàm nhập mảng 1 chiề u các số thực

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

{

printf("Nhap s o phan tu: ");

s canf ("% d",& n);

for (i nt i =0;i

{

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

s canf("% f", & a[i]);

}

}

129/ Viế t hàm nhập mảng 1 chiề u các số nguyê n

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

{

printf("Nhap s o phan tu: ");

s canf ("% d",& n);

for (i nt i =0;i

{

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

s canf("% d", & a[i]);

}

}

130/ Viế t hàm xuất mảng 1 chiều các số thực

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

{

for (i nt i =0;i

{

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

}

}

131/ Viế t hàm xuất mảng 1 chiều các số nguyê n

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

{

for (i nt i =0;i

{

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

}

}

132/ Viế t hàm liệt kê các giá trị chẵn trong mảng 1 chiề u các số nguyê n .

voi d LietKe GiaTri Chan(int a[], int n)

{

for (i nt i =0;i

{

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

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

}

}

133/ Viế t hàm liệt kê các vị trí mà giá trị tại đó là giá trị âm trong mảng 1 chiề u .

voi d LietKeVi TriAm(int a[], int n)

{

for (i nt i =0;i

{

if(a[i ]

printf("% 4d",i);

}

}

Kĩ thuật đặt lính canh các bt cơ bản

134/ Viế t hàm tìm giá trị lớn nhất trong mảng 1 chiề u các số thực float lonnhat(float a[],int n)

{

float lc=a[0];

for (int i=0;i

{

if(a[i]>lc)

lc=a[i];

}

re turn lc;

}

135/ Tìm Giá trị dương đầu tiê n trong mảng 1 chiề u các số thực. Nếu mảng ko có giá trị dương thì

trả về giá trị -1

float duong dau(float a[], int n)

{

for (i nt i =0; i

{

if (a[i]>0 )

{

retur n a[i];

}

}

retur n -1;

}

136/ Tìm Số chẵn cuối cùng trong mảng 1 chiề u các số nguyê n. Nế u mảng ko có giá trị chẵn 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)

{

retur n a[i];

}

}

retur n -1;

}

137/ Tìm 1 vị trí mà giá trị tại đó là giá trị nhỏ nhất trong mảng 1 chiề u các số thực

float vitrinhonhat(float a[],int n)

{

int lc=0;

for(int i=0;i

{

if(a[i]

}

138/ Tìm Vị trí của giá trị chẵn đầu tiê n trong mảng một chiề u các số nguyê n. Nế u mảng ko có giá

trị chẵn thì trả về giá trị -1 .

int vitrichandau(i nt a[] , int n)

{

for(int i=0; i

{

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

{

retur n i;

}

}

retur n -1;

}

139/ Tìm vị trí s ố hoàn thiệ n cuối cùng trong mảng 1 chiề u các số nguyê n. Nế u mảng ko có số hoàn

thiệ n thì trả về giá trị -1 .

int s ohoanthie n(int n)

{

int tong=0 ;

for (i nt i =1 ; i

if(n% i==0)

tong = tong + i;

if (tong == n)

retur n 1;

retur n 0;

}

int vitrihoanthiencuoi(int a[],int n)

{

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

if(s ohoanthien(a[i]==1)

retur n i;

retur n -1;

}

140/ Hãy tìm giá trị dương nhỏ nhất trong mảng các số thực. Nế u mảng không có giá trị dương thì

trả về giá trị là -1 .

float DuongNhoNhat(float a[], int n)

{

fl oat min;

int de m= 0;

for (i nt i =0; i

{

if(a[i ]>0)

{

de m ++;

bre ak;

}

}

if (de m !=0 )

{

min = a[i];

for (i=i+1; i

{

if((a[i]>0)&&(mi n>a[i ]))

{

min = a[i ];

}

}

retur n min;

}

retur n -1;

}

141/ Hãy tìm vị trí dương nhỏ nhất trong mảng 1 chiều các số thực. nếu mảng ko có giá trị dương

thì trả về 1 giá trị ngoài đoạn [0,n-1] là -1 nhằm mô tả ko có vị trí nào thỏa điề u kiệ n.

int vtduongnhonhat(float * A, i nt n)

{

int min;

int de m =0 ;

for (i nt i =0; i

{

if(A[i ]>0)

{

de m++;

min = i;

bre ak;

}

}

if (de m == 0)

retur n -1;

for (i =i+1; i

{

if((A[i]>0)&&(A[mi n]>A[i]))

{

min = i;

}

}

retur n min;

}

Các bt luyệ n tập

142/ Tìm Giá trị nhỏ nhất trong mảng 1 chiề u các số thực .

float NhoNhat(float a[], int n)

{

fl oat min = a[0];

for (i nt i =1; i

{

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

}

retur n min;

}

143/ Viế t hàm tìm chẵn đầu tiê n trong mảng các số nguyê n. Nế u mảng ko có giá trị chẵn thì hàm

trả về -1 .

int ChanDau(int a[],int n)

{

for(int i=0; i

{

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

{

retur n a[i];

}

}

retur n -1;

}

144/ Tìm số nguyê n tố đầu tiê n trong mảng 1 chiề u các số nguyê n. Nế u mảng không có số nguyê n tố

thì trả về giá trị -1 .

int intto(int n)

{

if (n>=2)

{

for (int i =2; i

if (n% i==0)

retur n 0;

retur n 1;

}

retur n 0;

}

int nguyentodau(int a[], int n)

{

for(int i=0; i

{

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

{

retur n a[i];

}

}

retur n -1;

}

145/ Tìm Số hoàn thiệ n đầu tiê n trong 1 chiề u các s ố nguyê n. Nếu mảng ko có số hoàn thiệ n thì trả

về giá trị -1.

int s ohoanthie n(int n)

{

int tong=0 ;

for (i nt i =1 ; i

if(n% i==0)

tong = tong + i;

if (tong == n)

retur n 1;

retur n 0;

}

int hoanthiendau(int a[],i nt n)

{

for(int i=0; i

if(s ohoanthien(a[i])==1)

retur n a[i];

retur n -1;

}

146/ Tìm giá trị âm đầu tiê n trong mảng 1 chiề u các số thực. nế u mảng 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

{

if (a[i])

{

retur n a[i];

}

}

retur n 1;

}

147/ Tìm số dương cuối cùng trong mảng số thực. Nếu mảng ko có giá trị dương 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 )

{

}

retur n -1;

}

retur n a[i];

}

148/ Tìm số nguyê n tố cuối cùng trong mảng 1 chiề u các số nguyê n. Nế u mảng ko có số nguyê n tố

thì trả về giá trị -1 .

int nguyentoc uoi(int a[],int n)

{

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

{

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

{

retur n a[i];

}

}

retur n -1;

}

149/ Tìm số hòan thiệ n cuối cùng trong mảng 1 chiề u các số nguyê n. Nế u mảng ko có số hòan thiệ n

thì hàm trả về giá trị -1 .

int hoanthiencuoi(int a[],int n)

{

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

{

if(s ohoanthien(a[i])==1)

{

retur n a[i];

}

}

retur n -1;

}

150/ Hãy tìm giá trị âm lớn nh ất tr ong mảng c ác s ố thực . Nếu mảng ko có giá trị âm thì tr ả về giá trị 0 .

float AmMax(fl oat a[], int n)

{

fl oat max;

int de m =0;

for (i nt i =0; i

{

if(a[i ]

{

de m++;

bre ak;

}

}

if (de m ==0)

{

}

els e

{

retur n 0;

max = a[i];

for (i=i+1; i

{

if((a[i]

{

max = a[i];

}

}

retur n max;

}

}

151/ hãy tìm số nguyê n tố lớn nhất trong mảng 1 chiề u. Nế u mảng ko có thì trả về giá trị 0

int nguyentol onnhat(i nt a[],int n)

{

int de m=0;

int max;

for(int i=0; i

{

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

{

de m ++; max = i ; bre ak;

}

}

if (de m ==0)

{

}

els e

{

retur n 0;

for (i=i+1; i

{

if ((intto(a[i]) ==1) && (a[max]

{

max = i ;

}

}

}

retur n max;

}

152/ hãy tìm số hòan thiệ n nhỏ nhất trong mảng 1 chiề u các số nguyê n. Nếu mảng ko có trả về 0 .

int hoanthiennhonhat(int a[],int n)

{

int de m=0;

int min;

for(int i=0; i

{

if(s ohoanthien(a[i])==1)

{

de m ++; min = i; bre ak;

}

}

if (de m ==0)

{

}

els e

{

retur n 0;

for (i=i+1; i

{

if ((s ohoanthien(a[i])==1 ) && (A [min]>a[i]))

{

min = i;

}

}

}

retur n min;

}

153/ Hãy tìm giá trị chẵn nhỏ nhất trong mảng 1 chiề u các số nguyê n. Nế u ko có trả về -1 .

int channhonhat(int a[],int n)

{

int de m=0;

int min;

for(int i=0; i

{

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

{

de m ++; min = i; bre ak;

}

}

if (de m ==0)

{

}

els e

{

retur n -1;

for (i=i+1; i

{

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

{

min = i;

}

}

}

retur n min;

}

154/ hãy tìm vị trí giá trị âm lớn nhất trong mảng số thực . ko có thì trả về -1 .

int VTriAmMax(fl oat a[], int n)

{

int VTmax = -1;

for (i nt i =0; i

{

if(a[i ]

{

VTmax = i;

bre ak;

}

}

for (i =i+1; i

{

if((a[i]

{

VTmax = i;

}

}

retur n VTmax;

}

B ài tập luyệ n tư duy

155/ hãy tìm giá trị trong mảng các số thực xa giá trị x nhất .

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

{

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

{

if((fabs )(A[j] - x) == kcxn)

{

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

}

}

printf("

");

}

156/ hãy tìm 1 vị trí trong mảng chiề u các số thực mà giá trị tại vị trí đó là giá trị gần giá trị x nhất .

voi d vi trigannhat(float *A , int n , float x)

{

double kcgn = (fabs )(A[0] - x);

int j = 0;

for (int i = 0 ; i

{

if((fabs )(A[i ] - x)

{

kcgn = (fabs )(A[i] - x);

j = i ;

}

}

printf("Cac vi tri c o gia tri gan % .2f nhat l a :",x);

for (j;j

{

if((fabs )(A[j] - x) == kcgn)

{

pri ntf("% d",j);

}

}

printf("

");

}

157/ hãy tìm đoạn [a,b] s ao cho đoạn này chứa tất cả các giá trị trong mảng .

voi d ti mdoan(s t* A, int n)

{

s t max = *A;

s t mi n = *A;

for (int i=1; i

{

max = (max

mi n = (mi n>*(A+i))? min:* (A+i);

}

printf("\t[ % .1f , % .1f ] l a doan c hua c ac gia tri tr ong mang

", max, mi n);

}

158 hãy tìm giá trị x s ao cho đoạn [-x,x] chứa tất cả các giá trị trong mảng .

float ti mx(float* A, int n)

{

float x = *A;

for (int i=1; i

{

x = (x>(fabs )(*(A+i)))? x : (fabs )(*(A+i));

}

re turn x;

}

159/ hãy tìm giá trị đầu tiê n lớn hơn giá trị 2003. Nế u mảng ko có giá trị thỏa thì hàm trả về giá trị

là 0 .

float dautien(fl oat *A , int n)

{

for (int i = 0 ; i

{

i f(A[i] > 2003)

{

return A[i];

}

}

re turn 0;

}

160/ hãy tìm giá trị âm cuối cùng lớn hơn giá trị -1 trong mảng số thực. Nếu ko có thì hàm trả về 0 .

float c uoicung(fl oat *A , i nt n)

{

for(n;n>=0;n--)

{

if(A[n] > -1 & & A[n]

{

retur n A[n];

}

}

return 0.0 ;

}

161/ hãy tìm giá trị đầu tiê n nằm trong khỏang (x,y) cho trc. Nế u ko có trả về giá trị x .

[FONT="]int dautie ntr ong doan(int a[], i nt n, i nt x, int y)[/ FO NT]

[FONT="]{[/ FONT]

[FONT="] int de m =0;[/ FONT]

[FONT="] for(int i=0; i

[FONT="] {[/ FONT]

[FONT="] if ((a[i]>=x)&&(a[i ]

[FONT="] {[/ FONT]

[FONT="] de m++;[/ FO NT]

[FONT="] bre ak;[/ FO NT]

[FONT="] }[/ FONT]

[FONT="] }[/ FONT]

[FONT="] if (de m == 0)[/ FONT]

[FONT="] {[/ FONT]

[FONT="] retur n x;[/FONT]

[FONT="] }[/ FONT]

[FONT="] retur n a[i];[/ FO NT]

[FONT="]}[/ FONT]

162/ hãy tìm 1 vị trí trong mảng số nguyê n thỏa 2 điề u kiệ n: có giá trị lân cận và giá trị tại đó bằng

tích 2 giá trị lân cận. Nế u ko có trả về -1 .

int bai162(float a[], int n)

{

int i=1;

for (;i

{

if (a [i]==((a[i -1])*a[i+1]))

{

retur n i;

}

}

retur n -1;

}

163/ tìm số chính phương đầu tiê n trong mảng 1 chiề u số ngyê n .

int s ochinhphuong(int a)

{

for (i nt i =1; i

{

if (i*i == a)

{

retur n 1;

}

}

retur n 0;

}

int chinhphuong dautien(int *A, int n)

{

for (i nt i =0; i

{

if (s ochinhphuong(*(A+i))==1)

{

retur n *(A+i );

}

}

retur n -1;

}

164/ Cho mảng số ng. Hãy tìm giá trị đầu tiê n thỏa tính chất s ố gánh (ví dụ: 12321) .

int s oganh(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)

{

retur n 1;

}

retur n 0;

}

int bai164(int a[], int n)

{

for (i nt i =0; i

{

if (s oganh(a[i])==1)

{

retur n a[i];

}

}

retur n -1;

}

165/ Hãy tìm giá trị đầu tiê n có chữ số đầu tiê n là chữ số lẻ. Ko có trả về 0 (ví dụ: 110)

int chus odau(int n)

{

int dv;

while (n>=10)

{

dv=n% 10;

n=n/10;

}

if (n% 2==0)

retur n 0;

retur n 1;

}

int daule dautien(int a[], int n)

{

for(int i=0 ; i

{

if ( chus odau(a[i])==1 )

{

retur n a[i];

}

}

retur n 0;

}

166/ hãy tìm giá trị đầu tiê n trong mảng có dạng 2^k. ko có thì trả về 0 .

int dang2k(int n)

{

int du;

if (n==1)

{

retur n 1;

}

do

{

du = n % 2 ;

if (du != 0)

{

retur n 0;

}

n = n/2;

} while (n>=2);

retur n 1;

}

int bai166(int a[], int n)

{

for(int i=0 ; i

{

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

{

retur n a[i];

}

}

retur n 0;

}

167/ Tìm giá trị toàn là chữ số lẻ và lớn nhất trong những s ố thỏa điều kiệ n. ko có trả về 0

int toanchus ole(int n)

{

int dv;

while (n!=0)

{

dv = n % 10;

if (dv % 2 == 0)

{

retur n 0;

}

n=n/10;

}

retur n 1;

}

int bai167(int a[], int n)

{

int max;

int de m =0;

for(int i=0 ; i

{

if (toanchus ole(a[i])==1 )

{

max = a[i]; de m ++; bre ak;

}

}

if (de m == 0)

{

retur n 0;

}

for(; i

{

if (toanchus ole(a[i])==1 )

{

}

retur n max;

}

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

168/ Hãy tìm giá trị lớn nhất trỏng mảng có dạng 5^k. Nế u mảng không tồn tại thì trả về 0

int dang5k(int n)

{

int du;

if (n==1)

retur n 1;

while (n>=5 )

{

du = n% 5;

n=n/5;

if (du != 0)

retur n 0;

}

retur n 1;

}

int bai168(int a[], int n)

{

int max;

int de m =0;

for(int i=0 ; i

{

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

{

max = a[i]; de m ++; bre ak;

}

}

if (de m == 0)

{

retur n 0;

}

for(;i

{

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

{

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

}

}

retur n max;

}

169/ Hãy tìm số chẵn lớn nhất nhỏ hơn mọi giá trị lẻ có trong mảng nguyê n

int lenhonhat(int a[], int n)

{

int min ;

int de m= 0;

for (i nt i =0; i

{

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

{

min = a[i]; de m ++; bre ak;

}

}

if (de m ==0)

retur n 0;

for (i ; i

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

min = a[i];

retur n min;

}

int bai169(int a[], int n)

{

int lemin = lenhonhat(a,n);

if (lemin == 0)

retur n -1;

retur n le min - 1;

}

170/ Tìm số nguyê n tố nhỏ nhất lớn hơn mọi giá trị trong mảng nguyê n .

int lonnhat(int a[], int n)

{

int max = a[0 ];

for(int i=1; i

{

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

}

retur n max;

}

int intto(int a)

{

for (i nt i =2; i

{

if (a% i==0)

retur n 0;

}

retur n 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)

bre ak;

}

retur n i;

}

171 Hãy tìm ước chung lớn nhất của tất cả ptử trong mảng nguyê n .

int s onhonhat(int a[], i nt n)

{

int min = a[0];

for (i nt i =1; i

min = (min

retur n min;

}

voi d uocs ocuami n(int a[], int n, int b[], int & m , int min)

{

m = 0;

for (i nt i =1; i

{

if (min % i == 0 )

{

b[m]=i;

m++;

}

}

}

int uocs ocuamang(int a[], int b[], int n, int m)

{

for (i nt i =0; i

{

if(a[i ]% b[m-1] !=0)

{

m--;

i=-1;

}

if (m

retur n 1;

}

retur n b[m-1 ];

}

172/ Hãy tìm bội số chung nhỏ nhất trong mảng nguyê n .

int s olonnhat(int A[], int n)

{

int max=A[0];

for (i nt i =1; i

{

if ((max == 0 )||(A[i]==0))

{

printf("Ban da vi pham l oi the doi voi bai nay

");

exit (0);

}

max=max>A[i]? max:A[i];

}

retur n max;

}

int boichungcuamang (int A[], int n, int max)

{

int bois o = max ;

for (i nt i =0; i

{

if (bois o % A[i] != 0)

{

bois o = bois o + max;

i=-1;

}

}

retur n bois o;

}

173 * Hãy viết hàm tìm chữ số xuất hiệ n ít nhất trong mảng .

int ChuSo(int a[], int n)

{

int i,So[10]={0},donvi,te mp;

for (i =0;i

{

te mp = abs (a[i]);

do

{

donvi = te mp% 10; te mp = te mp/10; So[donvi ]++;

} while (te mp!=0 );

}

int VTMax = 0;

for (i =0; i

{

VTMax = (So[VTMax]>So[i ])?VTMax:i;

}

retur n VTMax;

}

174 * Hãy viết hàm liệ t kê các cẵp giá trị (a,b) trong mảng thỏa đk a

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

{

int i,j;

for (i =0;i

{

for (j=i+1;j

{

if (a[i]

{

printf("

Cap vi tri ",a[i],a[j],i ,j);

}

}

}

}

175 * Hãy viết hàm tìm 2 giá trị gần nhau nhất trong mảng.

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

{

int i,j,kcgn = (abs )(a[0] - a[1]);

for (i =0;i

{

for (j=i+1;j

{

if ((abs )(a[i ]-a[j])

{

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

}

}

}

printf("Nhung cap gia tri gan nhau nhat:

");

for (i =0;i

{

for (j=i+1;j

{

if ((abs )(a[i ]-a[j])==kcgn)

{

printf("\t vi tri

",a[i],a[j],i,j);

}

}

}

}

Các bài tập tìm kiế m và liệ t kê

176/Liệt kê các số âm trong mảng số thực .

voi d xuatk q(fl oat a[],int m)

{

for (i nt i =0;i

{

if (a[i]

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

}

}

177/ Liệt kê các số trong mảng thực thuộc [x,y] cho trước .

voi d LietKetTr ongDoanXY(fl oat a[], int n, float x, fl oat y)

{

for (i nt i =0; i

{

if (x

{

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

}

}

}

178 Liệ t kê các số chẵn trong mảng nguyê n thuộc [x,y] .

voi d LietKetChanTr ong DoanXY(int a[], int n, int x, int y)

{

for (i nt i =0; i

{

if (a[i]% 2 == 0 && x

{

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

}

}

}

179/ Liệt kê các số thỏa đk lớn hơn trị tuyệ t đối của số đứng liền s au nó .

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

{

int flag = 0;

for (i nt i =0; i

{

if (a[i]>abs (a[i-1 ]))

{

fl ag =1;

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

}

}

if (flag == 0)

{

retur n;

}

printf("Mang ko c o gia tri do");

}

180 Liệ t kê các giá trị thỏa: nhỏ hơn trị tuyệ t đối của giá trị đứng liề n s au và lớn hơn giá trị đứng

liề n trước nó

181 Liệ t kê số chẵn có ít nhất 1 lận cận cũng là giá trị chẵn

182 Liệ t kê các số có ít nhất 1 lận cận trái dấu với nó

183 Liệ t kê vị trí mà giá trị tại đó là giá trị lớn nhất

184 Liệ t kê vị trí của số nguyê n tố

185 Liệ t kê vị trí của số chính phương

186 Liệ t kê vị trí mà giá trị bằng giá trị âm đầu tiê n

187 Liệ t kê vị trí mà giá trị bằng giá trị dương nhỏ nhất

188 Liệ t kê vị trí chẵn lớn nhất

189 Liệ t kê giá trị mà giá trị đó có chữ số đầu tiê n là chữ số lẻ

190 Liệ t kê giá trị tòan chữ số lẻ

191 Liệ t kê các giá trị cực đại. Cực đại khi lớn hơn các ptử lận cận

192 Liệ t kê giá trị có chữ số đầu tiê n là chẵn

193 Liệ t kê giá trị có dạng 3^k. Nếu mảng ko có thì trả về 0

194 Liệ t kê các cặp giá trị gần nhau nhất

195 Liệ t kê các bộ 3 giá trị (a,b,c) thỏa a=b+c. ví dụ: (6,2,4)

196 Liệ t kê các số âm

197 Liệ t kê các chữ số đầu là lẻ

198 Liệ t kê các vị trí mà tại đó là giá trị max

199 Liệ t kê vị trí mà giá trị đó là số nguyê n tố

Kĩ thuật tính tổng

200 Tổng các ptử trong mảng

int tong(int A[], int n)

{

int s =0;

for (i nt i =0; i

{

s = s + A[i];

}

retur n s ;

}

201/ Tổng các ptử dương trong mảng

int Tong (int A[], i nt n)

{

int s = 0;

for (i nt i =0; i

{

if (A[i]>0 )

{

s =s +A[i ];

}

}

retur n s ;

}

202/ Tổng các 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)

{

retur n 0;

retur n 1;

}

int tong daule(int A[], i nt n)

{

int s =0;

for (i nt i =0; i

{

if (daule(A[i])==1)

{

s = s + A[i];

}

}

retur n s ;

}

203/ Tổng các ptử có chữ số hàng chục là 5

int hangchuc5(int n)

{

n = abs (n);

n=n/10;

int hangchuc=n% 10;

if (hangchuc == 5)

{

retur n 1;

}

retur n 0;

}

int tong(int A[], int n)

{

int s =0;

for (i nt i =0; i

{

if (hangchuc5(A[i])==1 )

{

s = s + A[i];

}

}

retur n s ;

}

204/ Tổng các ptử lớn hơn ptử đứng liề n trước nó

int tonggiatri(int A[], i nt n)

{

int s = 0 ;

for (i nt i =1; i

{

if (A[i]>A[i-1])

{

s =s +A[i ];

}

}

retur n s ;

}

205/ Tổng các ptử lớn hơn trị tuyệ t đối của ptử liề n s au nó

int tonggiatri(int A[], i nt n)

{

int s =0;

for (i nt i =0; i

{

if ( A[i] > abs (A[i +1]) )

{

s =s +A[i ];

}

}

retur n s ;

}

206/ Tổng các ptử lớn hơn ptử xung quanh

int tonggiatri(int A[], i nt n)

{

int s =0;

for (i nt i =0; i

{

if (i==0 && A[i]>A[i+1])

{

s = s + A[i];

}

els e if (i!=0 && A[i]>A[i+1] && A[i] > A[i -1])

{

s = s + A[i];

}

els e if (i==n-1 && A[i] > A[i-1])

{

s = s + A[i];

}

}

retur n s ;

}

207/ Tổng các ptử cực trị - Cực trị là ptử khi nó lớn hoặc nhỏ hơn ptử xung quanh

int tongcuctri (int A[], int n)

{

int s =0;

for (i nt i = 0; i

{

if (i==0 && A[i]!=A[i +1])

{

s = s + A[i];

}

els e if (i==n-1 && A[i]!=A[i -1])

{

s = s + A[i];

}

els e if ((A[i]A[i+1] && A[i]>A[i-1]) )

{

s = s + A[i];

}

}

retur n s ;

}

208/ Tổng các ptử chính phương

int s ochinhphuong(int n)

{

int can = s qr t(n);

if (can*can == n)

retur n 1;

retur n 0;

}

int Tong(int* A, int n)

{

int s =0;

for (i nt i = 0; i

{

if (s ochinhphuong(A[i])==1)

{

s =s +A[i ];

}

}

retur n s ;

}

209/ Tổng các ptử đối xứng

int s odoixung(int n)

{

int donvi , tam = n; int s odaonguoc = 0; while(tam!=0)

{

donvi = tam% 10;

s odaonguoc = s odaonguoc*10 + donvi;

tam = tam/10;

}

if (s odaonguoc == n)

{

retur n 1;

}

retur n 0;

}

int tong(int A[], int n)

{

int s =0;

for (i nt i = 0; i

{

if (s odoixung(A[i])==1)

{

s =s +A[i ];

}

}

retur n s ;

}

210/ Tổng các ptử có chữ số đầu là chẵn

int s odauchan(int n)

{

while(n>=10)

{

n=n/10;

}

if (n% 2 == 0)

{

retur n 1;

}

retur n 0;

}

int tong(int A[], int n)

{

int s =0;

for (i nt i = 0; i

{

if (s odauchan(A[i])==1)

{

s =s +A[i ];

de m ++;

}

}

retur n s ;

}

211/ Trung bình cộng các số nguyê n tố

int s onguyento(int n)

{

for(int i=2; i

{

if (n % i == 0)

retur n 0;

}

retur n 1;

}

float TBCong (int A[], int n)

{

int s =0;

fl oat de m=0;

for (i nt i = 0; i

{

if (s onguyento(A[i])==1 )

{

s =s +A[i ];

de m ++;

}

}

if (de m == 0)

{

retur n 0;

}

printf("Mang ko c o s o thoa ye u c au de");

retur n s /de m;

}

212/ Trung bình cộng các số dương

float TrungBinhCong (int A[], int n)

{

int s =0;

fl oat de m=0;

for (i nt i = 0; i

{

if (A[i]>0 )

{

s =s +A[i ];

de m ++;

}

}

if (de m == 0)

{

printf("Mang ko c o s o thoa ye u c au de");

retur n 0;

}

retur n s /de m;

}

213/ Trung bình cộng các số lớn hơn x

float TBCong (int A[], int n, int x)

{

int s =0;

fl oat de m=0;

for (i nt i = 0; i

{

if (A[i]>x)

{

s =s +A[i ];

de m ++;

}

}

if (de m == 0)

{

printf("Mang ko c o s o thoa ye u c au de");

retur n 0;

}

retur n s /de m;

}

214/ Trung bình nhân các số dương

float TB NhanDuong(i nt A[], int n, int m)

{

int T=1;

fl oat de m=0;

for (i nt i = 0; i

{

if (A[i]>0 )

{

T*=A[i];

de m ++;

}

}

if (de m == 0)

{

printf("Mang ko c o s o thoa ye u c au de");

retur n 0;

}

retur n pow(T,1.0/ de m);

}

215 (*) Khoảng cách trung bình giữa các giá trị trong mảng

double tong(int A[], int n)

{

int s =0;

int y=0;

for (i nt i = 0; i

{

for (int j=i +1;i

{

s = s + abs (A[i ]-A[i+1 ]);

y++;

}

}

retur n pow(s ,1.0/y);

}

Kĩ thuật đế m

216/ Đế m số lượng chẵn trong mảng

int de ms ochan(int a[], int n)

{

int de m = 0;

for (i nt i =0; i

{

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

{

de m ++;

}

}

retur n de m;

}

217/ Đế m số dương chia hế t cho 7 trong mảng

int de ms ochan(int a[], int n)

{

int de m = 0;

for (i nt i =0; i

{

if (a[i]>0 && a[i]% 7 == 0)

{

de m ++;

}

}

retur n de m;

}

218/ Đế m số đối xứng trong mảng

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)

{

retur n 1;

}

retur n 0;

}

int de m (int a[], int n)

{

int de m = 0;

for (i nt i =0; i

{

if (a[i]

{

bre ak;

}

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

{

de m ++;

}

}

retur n de m;

}

219/ Đế m số lần xuất hiệ n của giá trị x trong mảng

int de m (int a[], int n,int x)

{

int de m = 0;

for (i nt i =0; i

{

if (a[i] ==x)

{

de m ++;

}

}

retur n de m;

}

220 Đếm s ố lượng giá trị tận cùng bằng 5 tr ong mảng int de m (int a[], int n)

{

int de m = 0;

for (i nt i =0; i

{

if (a[i]% 10 == 5)

{

de m ++;

}

}

retur n de m;

}

221/ Cho biết sự tương quan giữa số lượng chẵn và lẻ trong mảng

Hàm trả về 1 trong 3 giá trị -1, 0, 1

Giá trị -1 là chẵn nhiề u hơn lẻ

Giá trị 0 là chẵn == lẻ

Giá trị 1 là chẵn ít hơn lẻ .

int SoSanhChanLe(int a[], int n)

{

int de mchan = 0;

for (i nt i =0; i

{

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

{

de mc han++;

}

}

if (de mchan > n - de mchan)

{

retur n -1;

}

els e if (n - de mchan == de mc han)

{

retur n 0;

}

retur n 1;

}

222/ Đế m ptử lớn hơn hay nhỏ hơn ptửs xung quanh trong mảng

int De m(int A[], int n)

{

int i=0,j=0, De mTam=0;

for (i =0; i

{

if (i==0 && A[i]!=A[i +1])

{

De mTam++;

}

els e if ( i == n-1 && A[i-1]!=A[i])

{

De mTam++;

}

els e if ((A[i-1]>A[i] && A[i]A[i+1]) )

{

De mTam++;

}

}

retur n De mTam;

}

223: Đế m số nguyê n tố trong mảng

int SoNguyenTo(i nt a)

{

if (a

{

retur n 0;

}

for (i nt i =2; i

{

if (a% i==0)

{

retur n 0;

}

}

retur n 1;

}

int De m(int a[], int n)

{

int i=0, De mTam=0;

for (i =0; i

{

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

{

De mTam++;

}

}

retur n De mTam;

}

224/ Đế m số hoàn thiệ n trong mảng

int s ohoanthie n(int n)

{

int tong=0 ;

for (i nt i =1 ; i

if(n% i==0)

tong = tong + i;

if (tong == n)

retur n 1;

retur n 0;

}

int De m(int a[], int n)

{

int i=0, De mTam=0;

for (i =0; i

{

if (s ohoanthien(a[i])==1)

{

De mTam++;

}

}

retur n De mTam;

}

225/ Đế m số lượng giá trị lớn nhất có trong mảng

int De m(int a[], int n)

{

int i=0,De mTam=0;

int Max = a[0];

for (i =0; i

{

if (Max == a[i])

{

De mTam++;

}

els e if (Max

{

Max = a[i];

De mTam = 1;

}

}

retur n De mTam;

}

Bạn đang đọc truyện trên: AzTruyen.Top

Tags: