Duyệt mảng một chiều

0
4373

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;
}

 

This site uses Akismet to reduce spam. Learn how your comment data is processed.