CHƯƠNG 4
Bài 1:
#include <iostream>
using namespace std;
int main() {
int n;
cout << "Nhap so phan tu cua day: ";
cin >> n;
int* a = new int[n];
cout << "Nhap cac phan tu cua day:\n";
for (int i = 0; i < n; ++i) {
cout << "Phan tu thu " << i + 1 << ": ";
cin >> a[i];
}
int tong = 0;
for (int i = 0; i < n; ++i) {
if (a[i] % 3 == 0) {
tong += a[i];
}
}
cout << "Tong cac phan tu chia het cho 3 la: " << tong << endl;
delete[] a;
return 0;
}
Bài 2:
#include <iostream>
using namespace std;
int main() {
int n;
cout << "Nhap so phan tu cua day: ";
cin >> n;
int* a = new int[n];
cout << "Nhap cac phan tu cua day:\n";
for (int i = 0; i < n; ++i) {
cout << "Phan tu thu " << i + 1 << ": ";
cin >> a[i]; }
int dem = 0;
for (int i = 0; i < n - 1; ++i) {
for (int j = i + 1; j < n; ++j) {
if (a[i] == a[j]) {
dem++;
cout << "Gia tri trung nhau: " << a[i] << ", xuat hien " << dem << " lan.\n";
}
}
}
if (dem == 0) {
cout << "Khong co gia tri trung nhau trong day.\n";
}
delete[] a;
return 0;
}
Bài 3:
#include <iostream>
using namespace std;
int main() {
int n;
do {
cout << "Nhap so phan tu cua day (n > 0): ";
cin >> n;
} while (n <= 0);
int* mang = new int[n];
cout << "Nhap cac phan tu cua day:\n";
for (int i = 0; i < n; ++i) {
cout << "Phan tu thu " << i + 1 << ": ";
cin >> mang[i];
}
int x;
cout << "Nhap gia tri x: ";
cin >> x;
int tong = 0;
int soLuongPhanTuChon = 0;
cout << "Cac phan tu duoc chon sao cho tong nho hon " << x << " la:\n";
for (int i = 0; i < n; ++i) {
if (tong + mang[i] <= x) {
cout << mang[i] << " ";
tong += mang[i];
soLuongPhanTuChon++;
} else {
break;
}
}
if (soLuongPhanTuChon == 0) {
cout << "Khong co phan tu nao duoc chon.";
}
delete[] mang;
return 0;
}
Bài 4:
#include <iostream>
using namespace std;
int* timDayConTangDan(int a[], int n, int &doDai) {
if (n == 0) {
doDai = 0;
return nullptr;
}
int* batDau = nullptr;
int* ketThuc = nullptr;
int* tamThoiBatDau = nullptr;
int* tamThoiKetThuc = nullptr;
int tamThoiDoDai = 1;
doDai = 1;
for (int i = 1; i < n; i++) {
if (a[i] > a[i - 1]) {
if (tamThoiBatDau == nullptr) {
tamThoiBatDau = &a[i - 1];
tamThoiKetThuc = &a[i];
} else {
tamThoiKetThuc = &a[i];
tamThoiDoDai++;
}
} else {
tamThoiBatDau = nullptr;
tamThoiKetThuc = nullptr;
tamThoiDoDai = 1;
}
if (tamThoiDoDai > doDai) {
doDai = tamThoiDoDai;
batDau = tamThoiBatDau;
ketThuc = tamThoiKetThuc;
}
}
return batDau;
}
int main() {
int n;
cout << "Nhap so phan tu cua day: ";
cin >> n;
if (n <= 0) {
cout << "So phan tu khong hop le." << endl;
return 1;
}
int* a = new int[n];
cout << "Nhap cac phan tu cua day:\n";
for (int i = 0; i < n; i++) {
cout << "Phan tu thu " << i + 1 << ": ";
cin >> a[i];
}
int doDai;
int* dayCon = timDayConTangDan(a, n, doDai);
if (dayCon == nullptr) {
cout << "Khong co day con tang dan nao trong day." << endl;
} else {
cout << "Day con tang dan dai nhat la:\n";
for (int i = 0; i < doDai; i++) {
cout << dayCon[i] << " ";
}
cout << endl;
}
delete[] a;
return 0;
}
Bài 5:
#include <iostream>
#include <string>
using namespace std;
string tachPhanTen(const string &hoTen) {
size_t viTriCuoiCung = hoTen.find_last_of(' ');
if (viTriCuoiCung != string::npos) {
string phanTen = hoTen.substr(viTriCuoiCung + 1);
return phanTen;
}
return hoTen;
}
int main() {
string hoTen;
cout << "Nhap ho ten day du: ";
getline(cin, hoTen);
string ten = tachPhanTen(hoTen);
cout << "Phan ten la: " << ten << endl;
return 0;
}
Bài 6:
#include <iostream>
using namespace std;
void nhapMang(int mang[], int kichThuoc) {
cout << "Nhap cac phan tu cua mang:\n";
for (int i = 0; i < kichThuoc; ++i) {
cout << "Nhap phan tu thu " << i + 1 << ": ";
cin >> mang[i];
}
}
void xuatMang(int mang[], int kichThuoc) {
cout << "Mang:\n";
for (int i = 0; i < kichThuoc; ++i) {
cout << mang[i] << " ";
}
cout << endl;
}
void tronMang(int mang1[], int kichThuoc1, int mang2[], int kichThuoc2, int ketQua[]) {
int i = 0, j = 0, k = 0;
while (i < kichThuoc1 && j < kichThuoc2) {
if (mang1[i] < mang2[j]) {
ketQua[k] = mang1[i];
i++;
} else {
ketQua[k] = mang2[j];
j++;
}
k++;
}
while (i < kichThuoc1) {
ketQua[k] = mang1[i];
i++;
k++;
}
while (j < kichThuoc2) {
ketQua[k] = mang2[j];
j++;
k++;
}
}
int main() {
int kichThuoc1, kichThuoc2;
cout << "Nhap kich thuoc mang 1: ";
cin >> kichThuoc1;
int* mang1 = new int[kichThuoc1];
nhapMang(mang1, kichThuoc1);
cout << "Nhap kich thuoc mang 2: ";
cin >> kichThuoc2;
int* mang2 = new int[kichThuoc2];
nhapMang(mang2, kichThuoc2);
int* ketQua = new int[kichThuoc1 + kichThuoc2];
tronMang(mang1, kichThuoc1, mang2, kichThuoc2, ketQua);
cout << "Mang sau khi tron va sap xep la:\n";
xuatMang(ketQua, kichThuoc1 + kichThuoc2);
delete[] mang1;
delete[] mang2;
delete[] ketQua;
return 0;
}
Bài 7:
#include <iostream>
using namespace std;
int uscln(int a, int b){
if(a == 0|| b == 0) return a+b;
for(int i = min(a,b); i>=1; i--){
if(a%i==0 && b%i==0)
return 1;
}
}
int main(){
int a, b, c;
cout << "Nhap so nguyen a: ";
cin >> a;
cout << "Nhap so nguyen b: ";
cin >> b;
cout << "Nhap so nguyen c: ";
cin >> c;
int s = uscln(a, b) + uscln(b, c) + uscln(a, c);
cout << "Tong USCLN cua (" << a << ", " << b << "), (" << b << ", " << c << "), (" << a << ", "
<< c << ") la: " << s << endl;
return 0;
}
Bài 8:
#include <iostream>
#include <cstring>
Using namespsce std;
char* DinhDangChuoi(char* s) {
int n = strlen(s);
char* ketQua = new char[n + 1];
int j = 0;
bool laKhoangTrangCuoiCung = true;
for (int i = 0; i < n; ++i) {
if (s[i] != ' ') {
ketQua[j++] = (laKhoangTrangCuoiCung) ? toupper(s[i]) : tolower(s[i]);
laKhoangTrangCuoiCung = false;
} else {
laKhoangTrangCuoiCung = true;
}
}
ketQua[j] = '\0';
return ketQua;
}
int main() {
char chuoi[100];
cout << "Nhap chuoi: ";
cin.getline(chuoi, 100);
char* ketQua = DinhDangChuoi(chuoi);
cout << "Chuoi sau khi dinh dang: " << ketQua << endl;
delete[] ketQua;
return 0;
}
Bài 9:
#include <iostream>
using namespace std;
void noiChuoi(char* chuoiT, const char* chuoiS) {
while (*chuoiT != '\0') {
chuoiT++;
}
while (*chuoiS != '\0') {
*chuoiT = *chuoiS;
chuoiT++;
chuoiS++;
}
*chuoiT = '\0';
}
int main() {
char chuoiT[100];
char chuoiS[100];
cout << "Nhap chuoi T: ";
cin.getline(chuoiT, 100);
cout << "Nhap chuoi S: ";
cin.getline(chuoiS, 100);
noiChuoi(chuoiT, chuoiS);
cout << "Chuoi sau khi noi: " << chuoiT << endl;
return 0;
}
Bài 10:
#include <iostream>
using namespace std;
void NhapDaySo(double*& a, int& n) {
cout << "Nhap so luong phan tu cua day: ";
cin >> n;
if (n <= 0) {
cout << "So luong phan tu khong hop le." << endl;
exit(1);
}
a = new double[n];
cout << "Nhap cac phan tu cua day:\n";
for (int i = 0; i < n; ++i) {
cout << "Phan tu thu " << i + 1 << ": ";
cin >> a[i];
}
}
void Tim3PhanTuLonNhat(double* a, int n) {
if (n < 3) {
cout << "day so khong có dủ 3 phan tu." << endl;
return;
}
double* result = new double[3];
double phantulonnhat = 0;
for (int i = 0; i < n - 2; ++i) {
for (int j = i + 1; j < n - 1; ++j) {
for (int k = j + 1; k < n; ++k) {
double tong= a[i] + a[j] + a[k];
if (tong > phantulonnhat) {
phantulonnhat = tong;
result[0] = a[i];
result[1] = a[j];
result[2] = a[k];
}
}
}
}
cout << "3 phan tu sao cho tong lon nhat la: " << result[0] << ", " << result[1] << ", " << result[2] <<
endl;
delete[] result;
}
int main() {
double* a;
int n;
NhapDaySo(a, n);
Tim3PhanTuLonNhat(a, n);
delete[] a;
return 0;
}
Bài 11:
#include <iostream>
#include <cstring>
Using namespace std;
bool KiemTraChuoiLapTrinh(const char* s) {
return (strstr(s, "Lap Trinh") != nullptr);
}
int main() {
char chuoi[100];
cout << "Nhap chuoi: ";
cin.getline(chuoi, 100);
if (KiemTraChuoiLapTrinh(chuoi)) {
cout << "Chuoi chua \"Lap Trinh\".\n";
} else {
cout << "Chuoi khong chua \"Lap Trinh\".\n";
}
return 0;
}