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
Môn: Nhập môn lập trình
Trường: Trường Đại học Công nghệ Thông tin, Đại học Quốc gia Thành phố Hồ Chí Minh
Thông tin:
Tác giả:
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; }