










Preview text:
Bài 1: #include #include #include #define MAX 100 a)
void hienThiMang(int a[], int n) { printf("Mang da nhap: ");
for (int i = 0; i < n; i++) printf("%d ", a[i]); printf("\n"); } b)
void tongMang(int a[], int n) { int tong = 0;
for (int i = 0; i < n; i++) tong += a[i];
printf("Tong cac phan tu: %d\n", tong); } c) void maxMin(int a[], int n) {
int max = a[0], min = a[0], imax = 0, imin = 0;
for (int i = 1; i < n; i++) { if (a[i] > max) { max = a[i]; imax = i; } if (a[i] < min) { min = a[i]; imin = i; } }
printf("Max: %d (chi so %d)\n", max, imax);
printf("Min: %d (chi so %d)\n", min, imin); } d)
void sapXepTangDan(int a[], int n) {
for (int i = 0; i < n - 1; i++)
for (int j = i + 1; j < n; j++) if (a[i] > a[j]) {
int tmp = a[i]; a[i] = a[j]; a[j] = tmp; }
printf("Mang sau khi sap xep tang dan: "); hienThiMang(a, n); } e)
void demKhacNhau(int a[], int n) { int dem = 0;
for (int i = 0; i < n; i++) { int khac = 1;
for (int j = 0; j < i; j++) if (a[i] == a[j]) { khac = 0; break; } if (khac) dem++; }
printf("So phan tu khac nhau: %d\n", dem); } f)
void tachChanLe(int a[], int n) {
int chan[MAX], le[MAX], c = 0, l = 0;
for (int i = 0; i < n; i++) {
if (a[i] % 2 == 0) chan[c++] = a[i]; else le[l++] = a[i]; } printf("Mang chan: "); hienThiMang(chan, c); printf("Mang le: "); hienThiMang(le, l); } g)
void themPhanTu(int a[], int *n) { int x, pos; if (*n >= MAX) { printf("Mang da day!\n"); return; }
printf("Nhap gia tri can them: "); scanf("%d", &x);
printf("Nhap vi tri can chen (0 -> %d): ", *n); scanf("%d", &pos);
for (int i = *n; i > pos; i--) a[i] = a[i - 1]; a[pos] = x; (*n)++;
printf("Mang sau khi chen: "); hienThiMang(a, *n); } h)
void xoaPhanTu(int a[], int *n) { int pos;
printf("Nhap vi tri can xoa (0 -> %d): ", *n - 1); scanf("%d", &pos);
for (int i = pos; i < *n - 1; i++) a[i] = a[i + 1]; (*n)--; printf("Mang sau khi xoa: "); hienThiMang(a, *n); } i)
void timGiaTriLonThuHai(int a[], int n) { int max1 = -1e9, max2 = -1e9;
for (int i = 0; i < n; i++) { if (a[i] > max1) { max2 = max1; max1 = a[i];
} else if (a[i] > max2 && a[i] < max1) { max2 = a[i]; } } if (max2 == -1e9)
printf("Khong co gia tri lon thu hai.\n"); else
printf("Gia tri lon thu hai: %d\n", max2); } j)
void capGanTong0(int a[], int n) { int x = a[0], y = a[1]; int minSum = abs(x + y);
for (int i = 0; i < n - 1; i++)
for (int j = i + 1; j < n; j++) { int sum = abs(a[i] + a[j]); if (sum < minSum) { minSum = sum; x = a[i]; y = a[j]; } }
printf("Cap co tong gan 0 nhat: (%d, %d), tong = %d\n", x, y, x + y); } int main() { int a[MAX], n, chon; do {
printf("Nhap so phan tu cua mang (1-100): "); scanf("%d", &n);
} while (n < 1 || n > MAX);
for (int i = 0; i < n; i++) { printf("a[%d] = ", i); scanf("%d", &a[i]); } do { printf("\n= MENU =\n"); printf("a) Hien thi mang\n");
printf("b) Tinh tong mang\n");
printf("c) Tim max, min va chi so\n");
printf("d) Sap xep tang dan\n");
printf("e) Dem phan tu khac nhau\n"); printf("f) Tach chan le\n");
printf("g) Them 1 phan tu\n"); printf("h) Xoa 1 phan tu\n");
printf("i) Tim gia tri lon thu hai\n");
printf("j) Tim cap co tong gan 0\n"); printf("0) Thoat\n"); printf("Chon (a-j, 0): "); char choice; scanf(" %c", &choice); switch (choice) {
case 'a': hienThiMang(a, n); break;
case 'b': tongMang(a, n); break;
case 'c': maxMin(a, n); break;
case 'd': sapXepTangDan(a, n); break;
case 'e': demKhacNhau(a, n); break;
case 'f': tachChanLe(a, n); break;
case 'g': themPhanTu(a, &n); break;
case 'h': xoaPhanTu(a, &n); break;
case 'i': timGiaTriLonThuHai(a, n); break;
case 'j': capGanTong0(a, n); break;
case '0': printf("Tam biet!\n"); break;
default: printf("Lua chon sai!\n"); } } while (chon != 0); return 0; } Bài 2: #include #include #define MAX 100
a) Hiển thị mảng đã nhập
void hienThiMang(int A[][MAX], int n, int m) { printf("Ma tran A:\n");
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) printf("%4d", A[i][j]); printf("\n"); } }
b) Hiển thị tổng các phần tử trong mảng
void tongTatCa(int A[][MAX], int n, int m) { int sum = 0;
for (int i = 0; i < n; i++)
for (int j = 0; j < m; j++) sum += A[i][j];
printf("Tong tat ca phan tu: %d\n", sum); }
c) Hiển thị giá trị lớn nhất và nhỏ nhất của mảng
void minMax(int A[][MAX], int n, int m) {
int min = A[0][0], max = A[0][0];
for (int i = 0; i < n; i++)
for (int j = 0; j < m; j++) {
if (A[i][j] < min) min = A[i][j];
if (A[i][j] > max) max = A[i][j]; }
printf("Gia tri nho nhat: %d\n", min);
printf("Gia tri lon nhat: %d\n", max); }
d) Tính tổng theo từng cột
void tongCot(int A[][MAX], int n, int m) {
for (int j = 0; j < m; j++) { int sum = 0;
for (int i = 0; i < n; i++) sum += A[i][j];
printf("Tong cot %d = %d\n", j, sum); } }
e) Tính tổng theo từng hàng
void tongHang(int A[][MAX], int n, int m) {
for (int i = 0; i < n; i++) { int sum = 0;
for (int j = 0; j < m; j++) sum += A[i][j];
printf("Tong hang %d = %d\n", i, sum); } }
f) Sắp xếp từng dòng tăng dần và lưu vào B
void sapXepDongTang(int A[][MAX], int B[][MAX], int n, int m) {
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) B[i][j] = A[i][j];
for (int j = 0; j < m - 1; j++)
for (int k = j + 1; k < m; k++) if (B[i][j] > B[i][k]) { int tmp = B[i][j]; B[i][j] = B[i][k]; B[i][k] = tmp; } }
printf("Mang B (sap xep dong tang dan):\n"); hienThiMang(B, n, m); }
g) Sắp xếp từng cột tăng dần và lưu vào C
void sapXepCotTang(int A[][MAX], int C[][MAX], int n, int m) {
for (int j = 0; j < m; j++) {
for (int i = 0; i < n; i++) C[i][j] = A[i][j];
for (int i = 0; i < n - 1; i++)
for (int k = i + 1; k < n; k++) if (C[i][j] > C[k][j]) { int tmp = C[i][j]; C[i][j] = C[k][j]; C[k][j] = tmp; } }
printf("Mang C (sap xep cot tang dan):\n"); hienThiMang(C, n, m); } h) Cộng hai mảng B và C
void congHaiMaTran(int B[][MAX], int C[][MAX], int n, int m) { int tong[MAX][MAX];
for (int i = 0; i < n; i++)
for (int j = 0; j < m; j++)
tong[i][j] = B[i][j] + C[i][j];
printf("Ma tran tong B + C:\n"); hienThiMang(tong, n, m); } Hàm main int main() {
int A[MAX][MAX], B[MAX][MAX], C[MAX][MAX]; int n, m; do {
printf("Nhap so hang (1-100): "); scanf("%d", &n);
} while (n < 1 || n > 100); do {
printf("Nhap so cot (1-100): "); scanf("%d", &m);
} while (m < 1 || m > 100);
printf("Nhap cac phan tu cua ma tran A:\n");
for (int i = 0; i < n; i++)
for (int j = 0; j < m; j++) { printf("A[%d][%d] = ", i, j); scanf("%d", &A[i][j]); }
printf("\n--- a) Hien thi mang A ---\n"); hienThiMang(A, n, m);
printf("\n--- b) Tong tat ca phan tu ---\n"); tongTatCa(A, n, m);
printf("\n--- c) Gia tri lon nhat & nho nhat ---\n"); minMax(A, n, m);
printf("\n--- d) Tong theo tung cot ---\n"); tongCot(A, n, m);
printf("\n--- e) Tong theo tung hang ---\n"); tongHang(A, n, m);
printf("\n--- f) Sap xep dong tang, luu B ---\n"); sapXepDongTang(A, B, n, m);
printf("\n--- g) Sap xep cot tang, luu C ---\n"); sapXepCotTang(A, C, n, m);
printf("\n--- h) Cong hai ma tran B + C ---\n"); congHaiMaTran(B, C, n, m); return 0; }