YOMEDIA
Các thuật toán trên mảng hai chiều
Chia sẻ: Nguyễn Hữu Thiên Sơn
| Ngày:
| Loại File: PDF
| Số trang:16
475
lượt xem
67
download
Download
Vui lòng tải xuống để xem tài liệu đầy đủ
Đếm m các số dương trong phần tam giác phía trên
đường chéo chính: Sử dụng 1 biến đếm để ghi nhận số phần tử thỏa điều kiện
- Điều kiện của các phần tử phía trên đường chéo chính là i j
- Điều kiện số dương là a[i][j] 0
AMBIENT/
Chủ đề:
Nội dung Text: Các thuật toán trên mảng hai chiều
- Các thuật toán trên mảng
hai chiều
Nguyễn Đông Hà
Khoa CNTT – ĐH KHTN
- Nội dung
Duyệt mảng 2 chiều
Duy
Tính tổng số, tích số
Đế m
Tìm kiếm
Tìm phần tử lớn nhất, nhỏ nhất
- Duyệt hết các phần tử của mảng
Duy
Mảng a[3][5]:
so_dong = 3;
so_dong
so_cot = 5;
so_cot
1 1 2 2 5
7 5 4 2 5
7 8 9 3 8
- Duyệt hết các phần tử của mảng
Duy
for(i = 0; i < so_dong; i++)
for(j = 0; j < so_cot; j++)
{
/* Xử lý phần tử a[i][j] */
....
}
- Duyệt các phần tử trên cùng dòng hoặc cột
Duy
Duyệt các phần tử trên dòng có chỉ số k
for(j = 0; j < so_cot; j++)
{
/* Xử lý phần tử a[k][j] */
....
}
Duyệt các phần tử trên cột có chỉ số k
for(i = 0; i < so_dong; i++)
{
/* Xử lý phần tử a[i][k] */
....
}
- Đường chéo của ma trận vuông
Đư
Đường chéo chính
for(i = 0; i < n; i++)
{
/* Xử lý phần tử a[i][i] */
....
}
Đường chéo phụ
for(i = 0; i < n; i++)
{
/* Xử lý phần tử a[n-1-i][i] */
....
}
- Tính tổng các phần tử trên 1 dòng
Tính tổng các phần tử trên dòng chỉ số k
int tong = 0;
for(j = 0; j < so_cot; j++)
{
tong = tong + a[k][j]
}
- Tính tổng các số chẵn trên đường chéo chính
Tính tổng các số chẵn trên đường chéo chính
int Cheo1Chan (int a[5][5])
{
int tong = 0;
for(i = 0; i < 5; i++)
{
if(a[i][i]%2 == 0)
tong = tong + a[i][i];
}
return tong;
}
- Tính tích các số lẻ trên đường chéo phụ
Tính tổng các số lẻ trên đường chéo phụ
int Cheo2Phu (int a[5][5])
{
int tong = 0;
for(i = 0; i < 5; i++)
{
if(a[i][i]%2 == 1)
tong = tong + a[5-1-i][i];
}
return tong;
}
- Tính tích các số lẻ trên đường chéo phụ
Tính tổng các số lẻ trên đường chéo phụ
int Cheo2Phu (int a[5][5])
{
int tong = 0;
int i,j;
for(i = 0; i < 5; i++)
{
if(a[i][i]%2 == 1)
tong = tong + a[5-1-i][i];
}
return tong;
}
- Đếm các số dương trong phần tam giác phía trên
đường chéo chính
đư
Sử dụng 1 biến đếm để ghi nhận số phần tử thỏa điều kiện
Điều kiện của các phần tử phía trên đường chéo chính là i >j
Điều kiện số dương là a[i][j] > 0
int TamGiacTrenDuong (int a[5][5])
{
int dem = 0;
int i,j;
for(i = 0; i < 5; i++)
for(j = 0; j < 5; j++)
{
if(i 0)
dem++;
}
return dem;
}
- Tìm kiếm
Tìm xem một số x có xuất hiện trong phần tam giác phía
trên đường chéo phụ của mảng hay không
#define SIZE 5
int TimTrenCheo2 (int a[SIZE][SIZE], int x)
{
int i,j;
for(i = 0; i < SIZE; i++)
for(j = 0; j < SIZE; j++)
{
if(i+j
- Tìm phần tử lớn nhất trong mảng
Duyệt qua tất cả các phần tử, dùng một biến max để lưu trữ
Duy
giá trị lớn nhất
#define SIZE 5
int LonNhat (int a[SIZE][SIZE])
{
int i,j;
int max = a[0][0];
for(i = 0; i < SIZE; i++)
for(j = 0; j < SIZE; j++)
{
if(a[i][j] > max)
max = a[i][j];
}
return max;
}
- Tìm phần tử lớn nhất trong mảng
Duyệt qua tất cả các phần tử, dùng một biến max để lưu trữ
Duy
giá trị lớn nhất
#define SIZE 5
int LonNhat (int a[SIZE][SIZE])
{
int i,j;
int max = a[0][0];
for(i = 0; i < SIZE; i++)
for(j = 0; j < SIZE; j++)
{
if(a[i][j] > max)
max = a[i][j];
}
return max;
}
- Bài tập
Chương 5: 6,7,8,9
Ch
Thêm tài liệu vào bộ sưu tập có sẵn:
Báo xấu
LAVA
ERROR:connection to 10.20.1.100:9315 failed (errno=111, msg=Connection refused)
ERROR:connection to 10.20.1.100:9315 failed (errno=111, msg=Connection refused)
Đang xử lý...