**Bài toán 1** Ví dụ và giải thích về nhập dữ liệu và xuất dữ liệu trong C++
```C++
#include <stdio.h>
#include <iostream>
using namespace std;
int main() {
/*
* Khai bao mot bien tuoi, cho nguoi dung nhap vao tu ban phim
* gia tri cua bien do, sau do in ket qua ra man hinh
*/
int age = 0; // Khoi tao bien tuoi voi gia tri la 0
cout << "Moi ban nhap vao tuoi cua minh " << endl; // Ham cout dung de in ra man hinh, endl la ky tu ket thuc dong va xuong dong
cin >> age; // Ham cin dung de lay du lieu tu ban phim sau khi nguoi dung nhap va luu lai vao bien tuoi age
cout << "Tuoi cua ban la " << age;
return 0; // cuoi ham main can return ve so nguyen
}
```
**Bài toán 2** Ví dụ và giải thích về nhập xuất dữ liệu tron C
```C++
#include <stdio.h>
int main() {
/*
* Khai bao mot bien tuoi, cho nguoi dung nhap vao tu ban phim
* gia tri cua bien do, sau do in ket qua ra man hinh
*/
int age = 0; // Khoi tao bien tuoi voi gia tri la 0
printf("Moi ban nhap vao tuoi cua minh \n"); // Ham printf dung de in ra man hinh, \n la ky tu ket thuc dong va xuong dong
scanf("%d", &age); // Ham scanf dung de lay du lieu tu ban phim sau khi nguoi dung nhap va luu lai vao bien tuoi age. Nho co &
printf("Tuoi cua ban la %d", age);
return 0; // cuoi ham main can return ve so nguyen
}
```
**Bài toán 3** Khởi tạo và truy xuất mảng trong C
```C++
#include <stdio.h>
int main() {
int n = 10;
int array[20];
int i = 0;
for(i=0; i < n; i++) {
scanf("%d", &array[i]);
}
for(i=0; i < n; i++) {
printf("%d \n", array[i]);
}
return 0;
}
```
**Bài toán 4** Khởi tạo và truy xuất mảng trong C++
```C++
#include <stdio.h>
#include <iostream>
using namespace std;
int main() {
int n = 10;
int array[n];
int i = 0;
for(i=0; i < n; i++) {
cin >> array[i];
}
for(i=0; i < n; i++) {
cout << array[i] << " ";
}
return 0;
}
```
**Bài toán 5** Khởi tạo và truy xuất mảng 2 chiều
```C++
#include <stdio.h>
#include <iostream>
using namespace std;
int main()
{
// Khai báo mảng 2 chiều
int arr[3][5];
// Nhập giá trị vào mỗi phần tử trong mảng bằng cách duyệt qua tất cả phần tử
for(int i=0; i<3; i++)
{
for(int j=0; j<5; j++)
{
cin >> array[i][j];
}
}
// In dữ liệu ra màn hình bằng cách duyệt qua tất cả phần tử
for(int i=0; i<3; i++)
{
for(int j=0; j<5; j++)
{
cout << array[i][j] << " ";
}
cout << endl;
}
return 0;
}
```
**Bài toán 6** Truyền mảng 1 chiều vào hàm. Ví dụ với hàm cho phép nhập dữ liệu vào mảng
```C++
#include <stdio.h>
#include <iostream>
using namespace std;
void writeData(int array[], int size);
int main() {
// Khai báo mảng có 10 phần tử, n là kich thước của mảng
int n = 10;
int array[n];
//Khởi tạo biến đếm i
int i = 0;
writeData(array, n);
for(i=0; i < n; i++) {
cout << array[i] << " ";
}
return 0;
}
void writeData(int array[], int size) {
int i = 0;
for(i=0; i < size; i++) {
cin >> array[i];
}
}
```
**Bài toán 7** Truyền dữ liệu mảng 2 chiều vào hàm. Ví dụ với hàm nhập và xuất ma trận
```C++
#include <stdio.h>
#include <iostream>
using namespace std;
void writeData(int a[][100], int m, int n);
void printData(int a[][100], int m, int n);
int main(){
int a[100][100];
int m,n;
printf("Nhap so hang n = ");
scanf("%d",&n);
printf("Nhap so cot m = ");
scanf("%d",&m);
printf("Nhap vao ma tran:\n");
writeData(a, m , n);
printData(a, m, n);
return 0;
}
void writeData(int a[][100], int m, int n)
{
for(int i = 0; i < m; i++)
for(int j = 0; j < n; j++)
{
printf("A[%d][%d] = ", i, j);
scanf("%d", &a[i][j]);
}
}
void printData(int a[][100], int m, int n)
{
for(int i = 0; i < m; i++)
{
for(int j = 0; j < n; j++)
printf("%d\t", a[i][j]);
printf("\n");
}
}
```