Professional Documents
Culture Documents
Mảng 1 chiều : type name[n]; //name là tên mảng, type là kiểu dữ liệu của phần tử, n là số phần
tử của mảng.
- Các yêu cầu trên mảng đều có thể được thực hiện thông qua ba bài toán cơ bản này.
III. BÀI TẬP THỰC HÀNH:
3.1. Bài tập có hướng dẫn:
Tạo mới một project dùng phần mềm Visual Studio, nhập lại đoạn chương trình mẫu, biên dịch,
kiểm tra kết quả và nhận xét.
Bài 1 :
- Viết chương trình tạo một mảng số nguyên 2 chiều 3x3 (3 hàng, 3 cột) có các giá trị phần tử là
giá trị ngẫu nhiên từ 0-10. Hiển thị mảng ra màn hình.
#include "stdio.h"
#include "conio.h"
#include "stdlib.h"
void main()
{
int M[3][3];
for (int i = 0;i<3;i++)
{
for(int j=0; j<3; j++)
{
M[i][j] = rand()%10;
}
}
printf("Mang 3x3 :\n");
for (int i = 0;i<3;i++)
{
for(int j=0; j<3; j++)
{
printf("%d\t",M[i][j]);
}
printf("\n");
}
getch();
}
Bài 2 :
Viết chương trình với các yêu cầu sau.
- Cho phép người sử dụng nhập các giá trị cho một mảng số nguyên 3x3.
- In ra màn hình mảng vừa nhập.
#include "stdio.h"
#include "conio.h"
#include "windows.h"
void main()
{
int M[3][3];
printf("Nhap mang:\n");
for (int i = 0;i<3;i++)
{
for(int j=0; j<3; j++)
{
printf("M[%d][%d] = ",i,j);
scanf("%d",&M[i][j]);
}
}
system("cls");
printf("Mang 3x3 :\n");
for (int i = 0;i<3;i++)
{
for(int j=0; j<3; j++)
{
printf("%d\t",M[i][j]);
}
printf("\n");
}
getch();
}
Bài 3 :
Viết chương trình giao diện console theo yêu cầu sau :
Yêu cầu :
- Tạo sẵn 1 ma trận số nguyên (3x3). Xuất ma trận ra màn hình.
- Tìm giá trị phần tử lớn nhất và nhỏ nhất. Xuất các giá trị này ra màn hình.
#include "stdio.h"
#include "conio.h"
#include "windows.h"
void main()
{
int M[3][3];
printf("Nhap mang:\n");
for (int i = 0;i<3;i++)
{
for(int j=0; j<3; j++)
{
printf("M[%d][%d] = ",i,j);
scanf("%d",&M[i][j]);
}
}
system("cls");
printf("Mang 3x3 :\n");
for (int i = 0;i<3;i++)
{
for(int j=0; j<3; j++)
{
printf("%d\t",M[i][j]);
}
printf("\n");
}
getch();
}
Bài 4 :
Viết chương trình giao diện console theo yêu cầu sau :
- In ra màn hình hình tam giác vuông cân (cạnh góc vuông = 10) được tạo thành từ các kí tự dấu
sao (*).
#include "stdio.h"
#include "conio.h"
#include "windows.h"
void main()
{
int Min,Max;
char M[10][10];
for (int i = 0;i<10;i++)
{
for(int j=0; j<10; j++)
{
if(i>=j) M[i][j] = '*';
else M[i][j] = ' ';
}
}
printf("Tam giac vuong can :\n");
for (int i = 0;i<10;i++)
{
for(int j=0; j<10; j++)
{
printf("%c",M[i][j]);
}
printf("\n");
}
getch();
}
Bài 2: Viết chương trình tạo mảng 2 chiều 3 hàng 3 cột (giá trị nhập từ bàn phím). Hiển thị mảng vừa
nhập ra màn hình.
- Cho phép người sử dụng chọn lựa: 1 để tính tổng , 2 để tính tích.
- 1: Tính tổng giá trị các phần tử của mảng.
- 2: Tính tích giá trị các phần tử của mảng.
- Xuất giá trị tính toán ra màn hình.
Bài 3: Viết chương trình tạo mảng 1 chiều gồm 10 phần tử (giá trị nhập từ bàn phím). Hiển thị mảng
vừa nhập ra màn hình.
a/ Hiển thị mảng theo thứ tự ngược lại.
b/ Tìm giá trị min, max và giá trị trung bình của các phần tử trong mảng. Hiển thị các giá trị vừa tìm
được.
Bài 4 : Tạo sẵn 1 mảng số nguyên (3x3). Xuất mảng ra màn hình.
- Tìm giá trị phần tử xuất hiện nhiều nhất trong mảng. Xuất giá trị này ra màn hình.
Bài 5 : Tạo sẵn một dữ liệu (mảng 1 chiều 20 phần tử) có các giá trị ngẫu nhiên.
- Hãy tự tạo 1 mảng để lưu giữ các dữ liệu này. Hiển thị mảng ban đầu ra màn hình.
- Thực hiện lọc trung bình x3 theo công thức sau:
- N[i] = (M[i-1] + M[i] + M[i+1])/3
- N[0] = (M[0] + M[1])/2
- N[19] = (M[19]+ M[18])/2
- Xuất giá trị của dữ liệu sau khi lọc ra màn hình.
Bài 6 : Viết chương trình tạo mảng 1 chiều a gồm 20 phần tử. Mỗi phần tử mang giá trị ngẫu nhiên
thuộc (-10, 10). Sắp xếp mảng theo thứ tự tăng dần của các phần tử. Hiển thị mảng sau khi sắp xếp ra
màn hình.
Bài 7:
Viết chương trình cho phép người dùng nhập giá trị cho 2 mảng số nguyên A,B (3x3).
- Tính AxB, BxA và hiển thị kết quả ra màn hình.