} return flag; } 242 Ktra mảng có số chẵn ko? Có trả về 1, ko có trả về 0: int kiemtrachan
tải về
374.54 Kb.
Chuyển đổi dữ liệu
10.08.2016
Kích
374.54 Kb.
#16240
241 Ktra mảng có 2 giá trị 0 liên 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
{
if(A[i] == 0 && A[i+1] == 0)
{
flag = 1;
break;
}
}
return flag;
}
242 Ktra mảng có số chẵn ko? Có trả về 1, ko có trả về 0:
int kiemtrachan(int A[] , int n)
{
int flag = 0;
for(int i=0 ; i
{
if(A[i]%2 == 0)
{
flag = 1;
break;
}
}
return flag;
}
243 Ktra mảng có số ng tố ko? Có trả về 1, ko có trả về 0:
int SoNguyenTo(int a)
{
if (a<=1)
{
return 0;
}
for (int i=2; i
{
if (a%i==0)
{
return 0;
}
}
return 1;
}
int kiemtrasonguyento(int A[] , int n)
{
int flag = 0;
for(int i=0 ; i
{
if(songuyento(A[i]) == 1)
{
flag = 1;
}
}
return flag;
}
244. Ktra mảng có số hoan thien ko? Có trả về 1, ko có trả về 0:
int sohoanthien(int n)
{
int tong=0;
for (int i=1 ; 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
{
if(sohoanthien(A[i])==1 && A[i] < 256)
{
flag = 1;
break;
}
}
return flag;
}
245 Ktra mảng có toàn số chẵn ko? Có trả về 1, ko có trả về 0:
int kttoanchan(int A[] , int n)
{
int flag = 1;
for(int i=0 ; i
{
if(A[i]%2!=0)
{
flag = 0; break;
}
}
return flag;
}
246 Ktra mảng 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
{
if(A[i] != A[n-i-1])
{
flag = 0;
break;
}
}
return flag;
}
247 Ta định nghĩa 1 mảng có tính chất lẻ, khi tổng của 2 ptử lien tiếp luôn là lẻ.Ktra mảng có tính chẵn hay lẻ?:
int kttoanle(int A[] , int n)
{
int flag = 1;
for(int i=0 ; i
{
if(((A[i]+A[i+1])%2)==0)
{
flag = 0;
break;
}
}
return flag;
}
248 Ktra mảng có tăng dần hay ko?:
int kttangdan(int A[] , int n)
{
int flag = 1;
for(int i=0 ; i
{
if(A[i] > A[i+1])
{
flag = 0;
break;
}
}
return flag;
}
249 Ktra mảng có giảm dần hay ko:
int ktgiam(int A[] , int n)
{
int flag = 1;
for(int i=0 ; i
{
if(A[i] < A[i+1])
{
flag = 0;
break;
}
}
return flag;
}
250 Hãy cho biết các ptử trong mảng có lập thành cấp số cộng ko? Nếu có chỉ ra công sai d:
int ktcapsocong(int A[] , int n , int &d)
{
d = A[1] - A[0];
int flag = 1;
for(int i=2 ; i
{
if((A[i+1] - A[i])!=d)
{
flag = 0; break;
}
}
return flag;
}
251 Hãy cho biết các ptử trong mảng có bằng nhau ko?:
int ktbangnhau(int A[] , int 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])
{
flag = 1;
break;
}
}
}
return flag;
}
252 Ta định nghĩa 1 mảng đc gọi là “dạng sóng”, khi ptử có trị số I lớn hơn hoặc nhỏ hơn 2 ptử xung quanh. Hãy viết hàm ktra mảng có sóng hay ko:
int ktdangsong(int A[] , int 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]))
{
flag = 0;
break;
}
}
return flag;
}
253 Hãy cho biết tất cả ptử trong mảng a có nằm trong mảng 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)
{
flag = 1;
}
return flag;
}
254 hãy đếm giá trị trong mảng thỏa: lớn hơn tất cả các giá trị đứng đằng trước 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])
{
flag = 0;
}
}
if(flag == 1)
{
dem++;
}
}
return dem;
}
255 Sắp xếp mảng tăng dần:
void sapxep(int a[],int n)
{
for (int i=0;i
{
for (int j=i+1;j
{
if (a[i]>a[j])
{
int temp=a[i];
a[i] = a[j];
a[j]=temp;
}
}
}
}
256 sắp xếp mảng giảm dần:
void sapxep(int a[],int n)
{
for (int i=0;i
{
for (int j=i+1;j
{
if (a[i]
{
int temp=a[i];
a[i] = a[j];
a[j]=temp;
}
}
}
}
257 Sắp xếp lẻ tăng dần nhưng giá trị khácgiữ nguyên vị trí:
void sapxep(int a[],int n)
{
for (int i=0;i
{
if (a[i]%2!=0)
{
for (int j=i+1;j
{
if (a[j]%2!=0 && a[i]>a[j])
{
int temp=a[i];
a[i] = a[j];
a[j]=temp;
}
}
}
}
}
258 Sắp xếp số nguyên tố tăng dần nhưng giá trị khác giữ nguyên vị trí:
int SoNguyenTo(int a)
{
if (a<=1)
{
return 0;
}
for (int i=2; i
{
if (a%i==0)
{
return 0;
}
}
return 1;
}
void sapxep(int a[],int n)
{
for (int i=0;i
{
if (SoNguyenTo (a[i] ) ==1)
{
for (int j=i+1;j
{
if (SoNguyenTo (a[j] ) ==1 && a[i]>a[j])
{
int temp=a[i];
a[i] = a[j];
a[j]=temp;
}
}
}
}
}
259 Sắp xếp số hòan thiện giảm dần nhưng giá trị khác giữ nguyên vị trí:
int sohoanthien(int n)
{
int tong=0;
for (int i=1 ; i
if(n%i==0)
tong = tong + i;
if (tong == n)
return 1;
return 0;
}
void sapxep(int a[],int n)
{
for (int i=0;i
{
if (sohoanthien (a[i] ) ==1)
{
for (int j=i+1;j
{
if (sohoanthien (a[j] ) ==1 && a[i]
{
int temp=a[i];
a[i] = a[j];
a[j]=temp;
}
}
}
}
}
260 Cho 2 mảng a,b. Hãy cho biết mảng b có phải là hoán vị của mảng a ko:
void sapxep(int a[],int n)
{
for (int i=0;i
{
for (int j=i+1;j
{
if (a[i]>a[j])
{
int temp=a[i];
a[i] = a[j];
a[j]=temp;
}
}
}
}
void KetQua(int a[],int b[],int na,int nb)
{
if (na != nb)
{
printf("ko phai!");
return ;
}
sapxep(a,na);
sapxep(b,nb);
for (int i=0;i
{
if (a[i]!=b[i])
{
printf("ko phai");
return;
}
}
printf("phai!");
return;
}
261 Sắp xếp số dương tăng dần, các số âm giữ nguyên vị trí:
void sapxep(int a[],int n)
{
for (int i=0;i
{
if (a[i]>0)
{
for (int j=i+1;j
{
if (a[j]>0 && a[i]>a[j])
{
int temp=a[i];
a[i] = a[j];
a[j]=temp;
}
}
}
}
}
262 Sắp xếp chẵn, lẻ tăng dần nhưng vị trí tương đối giữa các số ko thay đổi:
void sapxep(int a[],int n)
{
for (int i=0;i
{
for (int j=i+1;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 Sắp xếp số dương tăng dần, âm giảm dần. Vị trí tương đối ko đổi:
void sapxep(int a[],int n)
{
for (int i=0;i
{
for (int j=i+1;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]
{
int temp=a[i];
a[i] = a[j];
a[j]=temp;
}
}
}
}
264 Trộn 2 mảng đã tăng thành 1 mảng đc sắp xếp tăng:
void sapxep(int a[],int n)
{
for (int i=0;i
{
for (int j=i+1;j
{
if (a[i]>a[j])
{
int temp=a[i];
a[i] = a[j];
a[j]=temp;
}
}
}
}
void 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 (int i=0;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 mảng tăng. Hãy trộn thành 1 mảng giảm dần:
void sapxep(int a[],int n)
{
for (int i=0;i
{
for (int j=i+1;j
{
if (a[i]>a[j])
{
int temp=a[i];
a[i] = a[j];
a[j]=temp;
}
}
}
}
void 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 (int i=0;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--;
}
}
}
266 Thêm 1 ptử x vào mảng tại vị trí k:
void themgiatri(int a[], int &n, int x, int k)
{
for (i=n; i>k; i--)
{
a[i] = a[i-1];
}
a[k] = x;
n++;
}
267 Hàm nhập mảng sao cho khi nhập xong thì giá trị trong mảng sắp xếp giảm dần:
void nhapmang(int a[], int &n)
{
printf("Nhap mang 1 chieu\n");
printf("Nhap n : "); scanf("%d",&n);
while (n<=1)
{
printf("Nhap lai n : " );
scanf("%d",&n);
}
int i,j,k;
for (i=0; i
{
printf("\tNhap a[%d] : ", i);
scanf("%d",&a[i]);
for (j=0; 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;
}
}
}
}
269 Thêm x vào trong mảng tăng nhưng vẫn giữ nguyên tính tăng của mảng
Cách đi của hàm:
- duyệt từ đầu phần tử trở đi, gặp phần tử nào lớn hơn X
Vd: mảng : 1 2 3 4
X = 2
1 > X (sai) nên để nguyên 1 tại vị trí
2 > X (sai) nên để nguyên 2 tại vị trí
3 > X (đúng)
- làm công việc là lùi vị trí
vị trí : 0 1 2 3 4
mảng: 1 2 3 4
cho lùi từ vị trí 2 trở đi
vị trí : 0 1 2 3 4
mảng: 1 2 X 3 4
và cho chèn X vào vị trí tại 2, để X vào đúng vị trí a[i]
#include
void ChenXMangTang(int a[], int &n, int x)
{
for (int i=0; i
{
if (x>a[i])
{
int temp = x;
for (int k = n; k>i; k--)
{
a[k] = a[k-1];
}
a[i] = temp;
break;
}
}
n++;
}
void main()
{
int n=5;
int a[5] = {1,2,3,4,5};
int x = 2;
for(int i=0; i
printf(" %d " , a[i]);
printf("\n");
ChenXMangTang(a,n,x);
for(i=0; i
printf(" %d " , a[i]);
}
270 Nhập mảng sau khi nhập xong đã tự sắp xếp tăng dần:
void nhapmang(int a[], int &n)
{
printf("Nhap mang 1 chieu\n");
printf("Nhap n : "); scanf("%d",&n);
while (n<=1)
{
printf("Nhap lai n : " );
scanf("%d",&n);
}
int i,j,k;
for (i=0; i
{
printf("\tNhap a[%d] : ", i);
scanf("%d",&a[i]);
for (j=0; 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;
}
}
}
}
271 Xóa các ptử có chỉ số k trong mảng:
void Xoavitri(int a[], int &n, int k)
{
for(int i=k; i
{
a[i] = a[i+1];
}
n--;
}
272 hãy xóa tất cả số lớn nhất trong mảng các số thực:
void xoavitri(float a[], int &n, int k)
{
for (int i=k; i
{
a[i] = a[i+1];
}
n--;
}
float lonnhat(float a[], int n)
{
float max = a[0];
for (int i=1; i
{
If(a[i]>max)
Max=a[i];
}
return max;
}
void xoamang(float a[], int &n)
{
float max = lonnhat(a,n);
for (int i=0; i
{
if (a[i]==max)
{
xoavitri(a,n,i);
i--;
}
}
}
273 Xóa tất cả số âm trong mảng:
void xoavitri(float a[], int &n, int k)
{
for (int i=k; i
{
a[i] = a[i+1];
}
n--;
}
void xoamang(float a[], int &n)
{
for (int i=0; i
{
if (a[i]<0)
{
xoavitri(a,n,i);
i--;
}
}
}
274 Xóa tất cả số chẵn trong mảng:
void xoavitri(float a[], int &n, int k)
{
for (int i=k; i
{
a[i] = a[i+1];
}
n--;
}
void xoamang(float a[], int &n)
{
for (int i=0; i
{
if (a[i]%2==0)
{
xoavitri(a,n,i);
i--;
}
}
}
275 Xóa tất cả “số chính phương” trong mảng:
void xoavitri(int a[], int &n, int k)
{
for (int i=k; i
{
a[i] = a[i+1];
}
n--;
}
int sochinhphuong(int n)
{
int a = (int)sqrt(n);
if (a*a == n)
{
return 1;
}
return 0;
}
void xoamang(int a[], int &n)
{
for (int i=0; i
{
if (sochinhphuong(a[i])==1)
{
xoavitri(a,n,i);
i--;
}
}
}
276 Xóa tất cả các ptử trùng với x:
void xoavitri(float a[], int &n, float k)
{
for (int i=k; i
{
a[i] = a[i+1];
}
n--;
}
void xoamang(float a[], int &n, float x)
{
for (int i=0; i
{
if (a[i] ==x)
{
xoavitri(a,n,i);
i--;
}
}
}
277 Xóa tất cả “số nguyên tố” trong mảng:
void xoavitri(int a[], int &n, int k)
{
for (int i=k; i
{
a[i] = a[i+1];
}
n--;
}
int songuyento(int n)
{
for (int i=2; i
{
if (n%i==0)
return 0;
}
return 1;
}
void xoamang(int a[], int &n)
{
for (int i=0; i
{
if (a[i]>=2)
{
if (songuyento(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ử:
void xoavitri(int a[], int &n, int k)
{
for (int i=k; i
{
a[i] = a[i+1];
}
n--;
}
void xoamang(int a[], int &n)
{
for (int i=0; i
{
for(int j=i+1; j
{
if (a[i]==a[j])
{
xoavitri(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:
void xoavitri(int a[], int &n, int k)
{
for (int i=k; i
{
a[i] = a[i+1];
}
n--;
}
void xoamang(int a[], int &n)
{
for (int i=0; i
{
for(int test = 0,j=i+1; j
{
if (a[i]==a[j])
{
xoavitri(a,n,j);
j--;
test=1;
}
}
if (test == 1)
{
xoavitri(a,n,i); //Xóa luôn chính nó
}
}
}
280 Hãy đưa số 1 về đầu mảng:
void DoiCho(int a[], int n, int k)
{
for(int i = k ; i>0; i--)
{
a[i] = a[i-1];
}
a[0] = 1;
}
void duaMotvedau(int a[], int n)
{
for (int i=0; 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:
void duachanvedau(int a[], int k)
{
int tam = a[k];
for(int i = k ; i>0; i--)
{
a[i] = a[i-1];
}
a[0] = tam;
}
void dua0(int a[], int k, int vitrichancuoi)
{
for(int i = k ; i>vitrichancuoi; i--)
{
a[i] = a[i-1];
}
a[vitrichancuoi] = 0;
}
void sapxep(int a[], int n)
{
int i;
int vitrichancuoi;
for (i=0; i
{
if (a[i] %2 == 0 && a[i]!=0)
{
duachanvedau(a,i); //vi tri i
}
}
for (i=0; i
{
if (a[i]%2!=0)
{
vitrichancuoi = i;
break;
}
}
for (i; i
{
if (a[i] == 0 )
{
dua0(a,i,vitrichancuoi); //vi tri i
}
}
}
282 Đưa các số chia hết cho 3 về đầu mảng:
void 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;
}
void chiahetchoba(int a[], int n)
{
for (int i=0; i
{
if (a[i] %3 == 0)
{
DoiCho(a,n,i); //vi tri i
}
}
}
283 Đảo ngược mảng ban đầu:
void hoanvi(int &a, int &b)
{
int tam = a;
a = b;
b =tam;
}
void DaoMang(int a[], int n)
{
for (int i=0,j=n-1; i
{
hoanvi(a[i],a[j]);
}
}
284 Đảo ngược thứ tự các số chẵn trong mảng:
void hoanvi(int &a, int &b)
{
int tam = a;
a = b;
b =tam;
}
void daochan(int a[], int n)
{
for (int i=0; i
{
for (int j = i+1; 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:
void hoanvi(int &a, int &b)
{
int tam = a;
a = b;
b =tam;
}
void daoduong(int a[], int n)
{
for (int i=0; i
{
for (int j = i+1; 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:
void dichtrai(int a[], int n)
{
int tam = a[0];
for (int i=0; i
{
a[i]=a[i+1];
}
a[n-1]= tam;
}
287 Dịch phải xoay vòng các ptử trong mảng:
void dichphai(int a[], int n)
{
int tam = a[n-1];
for (int 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:
void color (int a)
{
HANDLE mau;
mau = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(mau,a);
}
void XuatChanVangLeTrang(int a[], int n)
{
for (int i=0; i
{
if (a[i]%2==0)
{
color(14);
printf("%4d",a[i]);
}
else
{
color(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:
void chanlehaihang(int a[], int n)
{
for (int i=0; i
{
if (a[i]%2==0)
{
printf("%4d",a[i]);
}
}
printf("\n\t");
for (i=0; 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:
void hoanvi(int &a, int &b)
{
int tam = a;
a = b;
b =tam;
}
void daonguocchanle(int a[], int n)
{
int i, j;
for (i=0; i
{
for(j=i+1; 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 Biến đổi mảng bằng cách thay giá trị max = giá trị min và ngc lại:
void minmax(int a[], int n, int &max, int &min)
{
max=a[0];
min=a[0];
for (int i=1; i
{
max=(max
min=(min>a[i])?a[i]:min;
}
}
void biendoi(int a[], int n, int max, int min)
{
for(int i=0; i
{
if (a[i]==max)
{
a[i]=min;
}
else if (a[i]==min)
{
a[i]=max;
}
}
}
292 Biế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:
void thaysogannhat(float &n)
{
int phannguyen = (int) (n) ;
float phanle = n - phannguyen;
if (phanle <=0.5)
{
n = (float)phannguyen;
}
else
{
n = (float)phannguyen + 1;
}
}
void biendoi(float a[], int n)
{
for (int i=0; i
{
thaysogannhat(a[i]);
}
}
293 Liệt kê tất cả các mảng con:
void lietkecon(int a[], int n)
{
int ChieuDai;
for (int i=0; i
{
for (ChieuDai = 1; ChieuDai<=n; ChieuDai++)
{
for(int j=i; j
{
printf("%4d", a[j]);
}
printf("\n");
}
}
}
294 Liệt kê mảng con có độ dài lớn hơn 2 ptử:
void lietkecon(int a[], int n)
{
int ChieuDai;
for (int i=0; i
{
for (ChieuDai = 3+i; ChieuDai<=n; ChieuDai++)
{
for(int j=i; j
{
printf("%4d", a[j]);
}
printf("\n");
}
}
}
295 Liệt kê dãy con tăng dần:
int ktramangtang(int b[], int nb)
{
for(int i=0; i
{
if (b[i]>b[i+1])
return 0;
}
return 1;
}
void xuatmangcon(int b[], int nb)
{
for(int i=0; i
{
printf("%4d", b[i]);
}
printf("\n");
}
void lietkecontang(int a[], int n)
{
int ChieuDai;
int b[100], nb;
for (int i=0; i
{
for (ChieuDai = 1; ChieuDai<=n; ChieuDai++)
{
nb=0;
for(int j=i; 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 (int i=1; i
{
max = max
}
return max;
}
int ktramangtang(int b[], int nb)
{
for(int i=0; i
{
if (b[i]>b[i+1])
return 0;
}
return 1;
}
void xuatmangcon(int b[], int nb)
{
for(int i=0; i
{
printf("%4d", b[i]);
}
printf("\n");
}
int ktracomax(int b[], int nb,int max)
{
for (int i=0; i
{
if (b[i]==max)
{
return 1;
}
}
return 0;
}
void lietkecontang(int a[], int n, int max)
{
int ChieuDai;
int b[100], nb;
for (int i=0; i
{
for (ChieuDai = 1; ChieuDai<=n; ChieuDai++)
{
nb=0;
for(int j=i; j
{
b[nb]=a[j];
nb++;
}
if (ktramangtang(b,nb)==1)
{
if (ktracomax(b,nb,max)==1)
{
xuatmangcon(b,nb);
}
}
}
}
}
297 Tính tổng từng mảng con tăng:
int ktramangtang(int b[], int nb)
{
for(int i=0; i
{
if (b[i]>b[i+1])
return 0;
}
return 1;
}
void xuatmangcon(int b[], int nb)
{
for(int i=0; i
{
printf(" %d ", b[i]);
}
}
intt tongmangcon(int b[], int nb)
{
intt s=0;
for (int i=0; i
{
s = s + b[i];
}
return s;
}
void lietkecontang(int a[], int n)
{
int chieudaicon, b[100], nb, tong;
for (int i=0; i
{
for (chieudaicon = 1+i; chieudaicon<=n; chieudaicon++)
{
for(int j=i; j
{
b[nb]=a[j];
nb++;
}
if (ktramangtang(b,nb)==1)
{
xuatmangcon(b,nb);
tong = tongmangcon(b,nb);
printf("\tTong mang nay: %.2f\n", tong);
}
}
}
}
298 Đếm mảng con tăng có độ dài lớn hơn 1:
int ktramangtang(int b[], int nb)
{
for(int i=0; i
{
if (b[i]>b[i+1])
return 0;
}
return 1;
}
void Demcontang(int a[], int n)
{
int chieudaicon, b[100], nb;
int dem=0;
for (int i=0; i
{
for (chieudaicon = 2+i; chieudaicon<=n; chieudaicon++)
{
for(int j=i; j
{
b[nb]=a[j];
nb++;
}
if (ktramangtang(b,nb)==1)
{
dem++;
}
}
}
printf("\nTong so mang can tim: %d\n", dem);
}
299 Liệt kê dãy con toàn dương và độ dài lớn hơn 1:
int ktramangduong(float b[], int nb)
{
for(int i=0; i
if (b[i]<0)
return 0;
return 1;
}
void xuatmangcon(float b[], int nb)
{
for(int i=0; i
printf(" %.2f ", b[i]);
printf("\n");
}
void lietkecontang(float a[], int n)
{
int chieudaicon;
float b[100];
int nb;
for (int i=0; i
{
for (chieudaicon = 2+i; chieudaicon<=n; chieudaicon++)
{
for(int j=i; j
{
b[nb]=a[j];
nb++;
}
if (ktramangduong(b,nb)==1)
xuatmangcon(b,nb);
}
}
}
300 Đếm mảng con giảm:
int ktramanggiam(float b[], int nb)
{
for(int i=0; i
{
if (b[i]
return 0;
}
return 1;
}
void Demcongiam(float a[], int n)
{
int chieudaicon;
float b[100];
int nb;
int dem=0;
for (int i=0; i
{
for (chieudaicon = 1+i; chieudaicon<=n; chieudaicon++)
{
nb=0;
for(int j=i; j
{
b[nb]=a[j];
nb++;
}
if (ktramanggiam(b,nb)==1)
dem++;
}
}
printf("\nTong so mang con giam can tim: %d\n", dem);
}
301 Cho biết mảng a có phải là mảng con trong mảng b ko:
int Ktra(int a[], int b[], int na, int nb)
{
int i,j,test = 0;
for (i=0; i
{
if (b[i]==a[0])
{
int h = i;
for (test=1, j=0; j
{
if (a[j] != b[h])
{
test = 0;
break;
}
}
if (test == 1)
return test; //Mảng a là con mảng b
}
}
return test;
}
302 Đếm số lần xuất hiện mảng a trong mảng b:
int Dem(int a[], int b[], int na, int nb)
{
int i,j,test,dem=0;
for (i=0; i