Bài tập mảng 1 chiều | Nhập môn lập trình

Viết hàm xóa phần tử có chỉ số k trong mảng
số nguyên a có n phần tử. Nếu giá trị của k=n thì
không xóa và hàm trả về giá trị 0. Ngược lại ta xóa giá trị phần tử a[k] và hàm trả về giá trị 1. Bài tập giúp bạn tham khảo, củng cố kiến thức và ôn tập đạt kết quả cao

Bài 1: Xuất các số nguyên tố có trong mảng số
nguyên ra màn hình.
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int n, kt; cin >> n;
int a[10000];
for (int i = 0; i < n; i++)
cin >> a[i];
cout << "So nguyen to trong mang la: \n";
for (int i = 0; i < n ;i++)
{
kt = 0;
if (a[i] <= 1) kt = 1;
else for (int j = 2; j <= sqrt(a[i]); j++)
if (a[i] % j == 0) { kt = 1; break; };
if (kt == 0) cout <<a[i] << "\n";
}
return 0;
}
Bài 2: Kiểm tra mảng có đối xứng hay không ?
#include <iostream>
using namespace std;
int main()
{
int n, kt; cin >> n;
int a[10000];
for (int i = 0; i < n; i++)
cin >> a[i];
for (int i = 0; i < n ;i++)
{
kt = 1;
if (i != n - 1 - i) if (a[i] != a[n - i - 1]) {
kt = 0; break;
}
}
if (kt) cout << "Mang doi xung";
else cout << "Mang khong doi xung";
return 0;
}
Bài 3: Viết hàm xóa phần tử có chỉ số k trong mảng
số nguyên a có n phần tử. Nếu giá trị của k=n thì
không xóa và hàm trả về giá trị 0. Ngược lại ta xóa
giá trị phần tử a[k] và hàm trả về giá trị 1.
#include <iostream>
using namespace std;
int xoa(int a[], int n, int k)
{
if (k < 0 || k >= n) return 0;
else for (int i = k; i < n; i++)
{
a[i] = a[i + 1];
}
return 1;
}
int main()
{
int a[10000];
int n, kt, k; cin >> n >> k;
for (int i = 0; i < n; i++) cin >> a[i];
xoa(a, n, k);
return 0;
}
Bài 4: Tìm vị trí phần tử lớn thứ hai đầu tiên tìm
thấy trong mảng.
#include <iostream>
using namespace std;
int main()
{
int a[10000], b[10000];
int n, n2, max, max2; cin >> n; n2 = n;
for (int i = 0; i < n; i++) {
cin >> a[i]; b[i] = a[i];
}
max = a[0]; max2 = a[0];
for (int i = 1; i < n; i++)
if (a[i] > max) max = a[i];
for (int i = 1; i < n2; i++)
if (b[i] == max)
for (int j = i; i < n2; i++) {
b[j] = b[j + 1];
i--; n2--;
}
for (int i = 1; i < n; i++)
if (b[i] > max2) max2 = b[i];
for (int i = 1; i < n; i++) if (a[i] == max2) { cout << i; return 0; }
}
Bài 5: Tìm vị trí của phần tử có giá trị âm lớn nhất
trong mảng số nguyên.
#include <iostream>
using namespace std;
int main()
{
int a[10000];
int n, min; cin >> n;
for (int i = 0; i < n; i++) cin >> a[i];
min = a[0];
for (int i = 1; i < n; i++)
if (a[i] < min) min = a[i];
if (min >= 0) { cout << "Mang khong co gia tri am"; return 0; };
for (int i = 1; i < n; i++)
if (a[i] == min) cout << i << "\n";
return 0;
}
Bài 6: Xóa tất cả các phần tử nhỏ hơn X (X là tham
số của hàm)
#include <iostream>
using namespace std;
int main()
{
int a[10000];
int n, x; cin >> n >> x;
for (int i = 0; i < n; i++) cin >> a[i];
for (int i = 0; i < n; i++)
if (a[i] < x)
{
for (int j = i; j <= n; j++)
a[j] = a[j + 1];
i--; n--;
}
return 0;
}
Bài 7: Xóa các phần tử trùng với X trong mảng 1
chiều (giữ lại X đầu tiên)
#include <iostream>
using namespace std;
int main()
{
int a[10000];
int n, x, dem; cin >> n >> x;
dem = 0;
for (int i = 0; i < n; i++) cin >> a[i];
for (int i = 0; i < n; i++)
if (a[i] == x)
if (dem == 0) {
dem++; continue;
}
else
{
for (int j = i; j <= n; j++)
a[j] = a[j + 1];
i--; n--;
}
return 0;
}
Bài 8: Chèn số X vào phía sau phần tử có giá trị lớn
nhất đầu tiên tìm thấy trong mảng.
#include <iostream>
using namespace std;
int main()
{
int a[10000];
int n, x, max; cin >> n >> x;
for (int i = 0; i < n; i++) cin >> a[i];
max = a[0];
for (int i = 1; i < n; i++)
if (a[i] > max) max = a[i];
for (int i = 0; i <= n; i++)
if (a[i] == max)
{
for (int j = n; j > i+1; j--) a[j] = a[j - 1];
a[i+1] = x;
for (int k = 0; k <= n; k++) cout << a[k] << "\n";
return 0;
}
}
Bài 9: Xuất ra tất cả các mảng con tăng dần trong
mảng lớn.
#include <iostream>
using namespace std;
int main()
{
int a[10000];
int n, max, dem=1; cin >> n;
for (int i = 0; i < n; i++) cin >> a[i];
max = a[0]; cout << "Day " << dem << ": "<< max << " ";
for (int i = 1; i < n; i++)
if (a[i] >= max) { max = a[i]; cout << a[i] << " "; }
else {
max = a[i];
dem++;
cout << "\nDay " << dem << ": "<< a[i] << " ";
}
return 0;
}
Bài 10: Tách các số nguyên tố có trong mảng a đưa
vào mảng b.
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int n, kt, k; cin >> n;
int a[10000], b[10000];
for (int i = 0; i < n; i++)
cin >> a[i];
k = 0;
for (int i = 0; i < n; i++)
{
kt = 0;
if (a[i] <= 1) kt = 1;
else for (int j = 2; j <= sqrt(a[i]); j++)
if (a[i] % j == 0) { kt = 1; break; };
if (kt == 0) { b[k] = a[i]; k++; };
}
return 0;
}
| 1/5

Preview text:

Bài 1: Xuất các số nguyên tố có trong mảng số nguyên ra màn hình. #include #include using namespace std; int main() { int n, kt; cin >> n; int a[10000];
for (int i = 0; i < n; i++) cin >> a[i];
cout << "So nguyen to trong mang la: \n";
for (int i = 0; i < n ;i++) { kt = 0; if (a[i] <= 1) kt = 1;
else for (int j = 2; j <= sqrt(a[i]); j++)
if (a[i] % j == 0) { kt = 1; break; }; if (kt == 0) cout < } return 0; }
Bài 2: Kiểm tra mảng có đối xứng hay không ? #include using namespace std; int main() { int n, kt; cin >> n; int a[10000];
for (int i = 0; i < n; i++) cin >> a[i];
for (int i = 0; i < n ;i++) { kt = 1;
if (i != n - 1 - i) if (a[i] != a[n - i - 1]) { kt = 0; break; } }
if (kt) cout << "Mang doi xung";
else cout << "Mang khong doi xung"; return 0; }
Bài 3: Viết hàm xóa phần tử có chỉ số k trong mảng
số nguyên a có n phần tử. Nếu giá trị của k=n thì
không xóa và hàm trả về giá trị 0. Ngược lại ta xóa
giá trị phần tử a[k] và hàm trả về giá trị 1. #include using namespace std; int xoa(int a[], int n, int k) {
if (k < 0 || k >= n) return 0;
else for (int i = k; i < n; i++) { a[i] = a[i + 1]; } return 1; } int main() { int a[10000];
int n, kt, k; cin >> n >> k;
for (int i = 0; i < n; i++) cin >> a[i]; xoa(a, n, k); return 0; }
Bài 4: Tìm vị trí phần tử lớn thứ hai đầu tiên tìm thấy trong mảng. #include using namespace std; int main() { int a[10000], b[10000];
int n, n2, max, max2; cin >> n; n2 = n;
for (int i = 0; i < n; i++) {
cin >> a[i]; b[i] = a[i]; } max = a[0]; max2 = a[0];
for (int i = 1; i < n; i++)
if (a[i] > max) max = a[i];
for (int i = 1; i < n2; i++) if (b[i] == max)
for (int j = i; i < n2; i++) { b[j] = b[j + 1]; i--; n2--; }
for (int i = 1; i < n; i++)
if (b[i] > max2) max2 = b[i];
for (int i = 1; i < n; i++) if (a[i] == max2) { cout << i; return 0; } }
Bài 5: Tìm vị trí của phần tử có giá trị âm lớn nhất trong mảng số nguyên. #include using namespace std; int main() { int a[10000]; int n, min; cin >> n;
for (int i = 0; i < n; i++) cin >> a[i]; min = a[0];
for (int i = 1; i < n; i++)
if (a[i] < min) min = a[i];
if (min >= 0) { cout << "Mang khong co gia tri am"; return 0; };
for (int i = 1; i < n; i++)
if (a[i] == min) cout << i << "\n"; return 0; }
Bài 6: Xóa tất cả các phần tử nhỏ hơn X (X là tham số của hàm) #include using namespace std; int main() { int a[10000];
int n, x; cin >> n >> x;
for (int i = 0; i < n; i++) cin >> a[i];
for (int i = 0; i < n; i++) if (a[i] < x) {
for (int j = i; j <= n; j++) a[j] = a[j + 1]; i--; n--; } return 0; }
Bài 7: Xóa các phần tử trùng với X trong mảng 1
chiều (giữ lại X đầu tiên) #include using namespace std; int main() { int a[10000];
int n, x, dem; cin >> n >> x; dem = 0;
for (int i = 0; i < n; i++) cin >> a[i];
for (int i = 0; i < n; i++) if (a[i] == x) if (dem == 0) { dem++; continue; } else {
for (int j = i; j <= n; j++) a[j] = a[j + 1]; i--; n--; } return 0; }
Bài 8: Chèn số X vào phía sau phần tử có giá trị lớn
nhất đầu tiên tìm thấy trong mảng. #include using namespace std; int main() { int a[10000];
int n, x, max; cin >> n >> x;
for (int i = 0; i < n; i++) cin >> a[i]; max = a[0];
for (int i = 1; i < n; i++)
if (a[i] > max) max = a[i];
for (int i = 0; i <= n; i++) if (a[i] == max) {
for (int j = n; j > i+1; j--) a[j] = a[j - 1]; a[i+1] = x;
for (int k = 0; k <= n; k++) cout << a[k] << "\n"; return 0; } }
Bài 9: Xuất ra tất cả các mảng con tăng dần trong mảng lớn. #include using namespace std; int main() { int a[10000];
int n, max, dem=1; cin >> n;
for (int i = 0; i < n; i++) cin >> a[i];
max = a[0]; cout << "Day " << dem << ": "<< max << " ";
for (int i = 1; i < n; i++)
if (a[i] >= max) { max = a[i]; cout << a[i] << " "; } else { max = a[i]; dem++;
cout << "\nDay " << dem << ": "<< a[i] << " "; } return 0; }
Bài 10: Tách các số nguyên tố có trong mảng a đưa vào mảng b. #include #include using namespace std; int main() { int n, kt, k; cin >> n; int a[10000], b[10000];
for (int i = 0; i < n; i++) cin >> a[i]; k = 0;
for (int i = 0; i < n; i++) { kt = 0; if (a[i] <= 1) kt = 1;
else for (int j = 2; j <= sqrt(a[i]); j++)
if (a[i] % j == 0) { kt = 1; break; };
if (kt == 0) { b[k] = a[i]; k++; }; } return 0; }