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