Duyệt mảng là thao tác cơ bản nhất trong việc học lập trình, sau đây sinhvientot.net sẽ hướng dẫn bạn duyệt mảng một chiều theo chiều xuôi và theo chiều ngược.
Duyệt mảng theo chiều xuôi |
||
Duyệt mảng không điều kiện | -> | for (i=0; i<n; i++)
Xử lý a[i];
|
Duyệt mảng có điều kiện | -> | for (i=0; i<n; i++)
if (Thỏa điều kiện) Xử lý a[i];
|
Duyệt mảng theo chiều ngược |
||
Duyệt mảng không điều kiện | -> | for (i=n-1; i>=0; i–)
Xử lý a[i];
|
Duyệt mảng có điều kiện | -> | for (i=n-1; i>=0; i–)
if (Thỏa điều kiện) Xử lý a[i];
|
Ví dụ 1: duyệt mảng theo chiều xuôi
#include <stdio.h> #include <conio.h> void main() { int a[5]={4, 6, 3, 8, 9}, S1=0, S2=0, S3=0, i; // xuat mang printf("noi dung mang:"); for (i=0; i<5; i++) printf("%3d", a[i]); //tinh tong mang for (i=0; i<5; i++) S1 += a[i]; printf("\nTong mang: %d", S1); //tinh tong cac phan tu chan trong mang for (i=0; i<5; i++) if(a[i]%2 == 0) S2+=a[i]; printf("\nTong mang chan: %d", S2); // tinh tong cac phan tu le trong mang for (i=0; i<5; i++) if(a[i]%2 != 0) S3+=a[i]; printf("\nTong mang le: %d", S3); getch(); }
Kết quả:
noi dung mang: 4 6 3 8 9
Tong mang: 30
Tong mang chan: 18
Tong mang le: 12
Ví dụ 2: Kiểm tra mảng số nguyên có tồn tại giá trị 0 hay không? Nếu có thì trả về 1, ngược lại trả về 0. (duyệt theo chiều xuôi)
int KiemTraGiaTriKhong(int a[], int n) { //Dùng kỹ thuật cờ hiệu int flag=0; for(int i=0; i<n && !flag; i++) if(a[i] == 0) flag=1; return flag; }
Ví dụ 3: duyệt mảng theo chiều ngược
#include <stdio.h> #include <conio.h> void main() { int a[5]={4, 6, 3, 8, 9}, S1=0, S2=0, S3=0, i; // xuat mang printf("noi dung mang:"); for (i=4; i>=0; i--) printf("%3d", a[i]); //tinh tong mang for (i=4; i>=0; i--) S1 += a[i]; printf("\nTong mang: %d", S1); //tinh tong cac phan tu chan trong mang for (i=4; i>=0; i--) if(a[i]%2 == 0) S2+=a[i]; printf("\nTong mang chan: %d", S2); // tinh tong cac phan tu le trong mang for (i=4; i>=0; i--) if(a[i]%2 != 0) S3+=a[i]; printf("\nTong mang le: %d", S3); getch(); }
Kết quả:
noi dung mang: 4 6 3 8 9
Tong mang: 30
Tong mang chan: 18
Tong mang le: 12
Ví dụ 4: Kiểm tra mảng số nguyên có tồn tại giá trị 0 hay không? Nếu có thì trả về 1, ngược lại trả về 0. (duyệt theo chiều ngược)
int KiemTraGiaTriKhong(int a[], int n) { //Dùng kỹ thuật cờ hiệu int flag=0; for(int i=n-1; i>=0 && !flag; i--) if(a[i] == 0) flag=1; return flag; }