Video giải thích chi tiết về Tìm mảng con dài nhất, tìm mảng con không giảm, tìm mảng con không tăng dài nhất trong lập trình C | Tự học lập trình C
Code ví dụ
//A: 5 3 1 3 3 4 6 5
//B: 1 1 5 4 3 2 1 1 <-
#include "stdio.h"
int a[100];
int n;
void nhapMang(int x[100], int &n){
do {
printf("Nhap vao so luong phan tu: ");
scanf("%d", &n);
}while(n<1);
for(int i=0; i<n; i++){
printf("Nhap x[%d]:", i);
scanf("%d", &x[i]);
}
}
void xuatMang(int x[100], int n){
printf("\n");
printf("Gia tri cua mang la: ");
for(int i=0; i<n; i++){
printf("%d ", x[i]);
}
}
int timMax(int x[100], int n){
int max = x[0];
for(int i=0; i<n; i++){
if(x[i]>max)
max = x[i];
}
return max;
}
void inMangConKhongGiam(int x[100], int n){
int b[100];
for(int i=0; i<n; i++){
b[i]=1;
}
for(int i=n-1; i>0; i--){
if(x[i]>=x[i-1]){
b[i-1]=b[i]+1;
}
}
printf("\nMang B: ");
xuatMang(b, n);
int soLuong = timMax(b, n);
for(int i=0; i<n; i++){
if(b[i]==soLuong){
printf("\nMang khong giam dai nhat: ");
for(int j=i; j<soLuong+i; j++)
printf("%d ", x[j]);
}
}
}
int main(){
printf("-------\n");
nhapMang(a, n);
xuatMang(a, n);
inMangConKhongGiam(a, n);
}
Không có nhận xét nào:
Đăng nhận xét