Nhập xuất mảng một chiều

0
17549

Trong các bài viết trước sinhvientot.net đã hướng dẫn các bạn cách nhập/xuất mảng trong hàm main(). Bài viết này sẽ hướng dẫn các bạn nhập mảng từ file, phát sinh mảng với giá trị ngẫu nhiên, nhập mảng theo yêu cầu…

Trường hợp 1: Nhập mảng cơ bản -> có thể sẽ bị lỗi trong một số trường hợp

void NhapMang(int a[], int &n)
{
	printf("Cho biet so phan tu cua mang: ");
	scanf("%d", &n);
	for(int i=0; i<n; i++)
	{
		printf("Gia tri phan tu a[%d]=", i);
		scanf("%d", &a[i]);
	}
}

Trường hợp 2: Nhập mảng n phần tử với yêu cầu số phần tử phải lớn hơn 0, nếu không yêu cầu nhập lại

void NhapMang(int a[], int &n)
{
	do
	{
		printf("Cho biet so phan tu cua mang: ");
		scanf("%d", &n);
	}while(n<=0);
	for(int i=0; i<n; i++)
	{
		printf("Gia tri phan tu a[%d]=", i);
		scanf("%d", &a[i]);
	}
}

Trường hợp 3: Nhập mảng N phần tử yêu cầu số phần tử phải lớn hơn 0, nếu không yêu cầu nhập lại. Phát sinh giá trị ngẫu nhiên cho các phần tử mảng (giá trị ngẫu nhiên nhỏ hơn 1000)

void NhapMang(int a[], int &n)
{
	do
	{
		printf("Cho biet so phan tu cua mang: ");
		scanf("%d", &n);
	}while(n<=0);
	for(int i=0; i<n; i++)
	{
		printf("Gia tri phan tu a[%d]=", i);
		a[i]=rand()%1000;
	}
}

Trường hợp 4: Viết Hàm cho phép nhập một mảng các số nguyên, Thao tác nhập sẽ kết thúc khi người dùng nhập số 0. Giá trị 0 không đưa vào mảng.

void NhapMang(int a[ ], int &n)
{   	
	n=0; 
	int x; 
	do{	
		printf("nhap mot so nguyen. Nhap so 0 de dung: "); 
		scanf("%d", &x); 
		if(x!=0) 
			a[n++]=x; 
	}while(x!=0); 
}

Trường hợp 5: Nhập mảng N phần tử với số phần tử N vá giá trị từng phần tử đọc từ file

File input.txt có nội dung như sau

5
1 2 3 4 5

void TaoMang(int *arr, int &n)
{
	// mo file de doc
	FILE* fi = fopen("input.txt", "rt");
	if (fi == NULL)
		printf("Khong mo duoc tap tin!");
	//doc du lieu
	int n;
	fscanf(fi, "%d", &n);
	// khoi tao mang a tuong ung voi N phan tu
	int * arr = new int[n];
	for (int i = 0; i < n; i++)
		fscanf(fi, "%d", &arr[i]);
	//dong file
	fclose(fi);
}

Xuất mảng

void XuatMang(int a[], int n)
{
	for(int i=0; i<n; i++)
		printf("%4d", a[i]);
}

Xuất mảng ra file

void XuatFile(int* arr, int n)
{
	//mo file de ghi
	FILE* fo = fopen("output.txt", "wt"); // wt = write (ghi) + text (dang van ban)
	//ghi du lieu ra file
	for (int i = 0; i < n; i++)
		fprintf(fo, "%d ", arr[i]);
	// dong file
	fclose(fo);  
}

Kết quả có định dạng như sau:

File: output.txt

1 2 3 4 5

Xem thêm các bài viết sau:

  1. Hướng dẫn Dev-C++ căn bản hoặc  Hướng dẫn Tạo Project Visual C++ trong Visual Studio 2012
  2. Lý thuyết Mảng một chiều
  3. Duyệt mảng một chiều
  4. Thêm/Xóa phần tử trên mảng một chiều

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