01/10/2018, 08:30

Tại sao giá trị trả về của e no lại cho a[0] bang 0 mà a[0] của e bằng 1 .e cảm ơn

#include<iostream>
#define MAX 100


using namespace std;
//====================================
void NhapMang(int a[] , int &n)
{
	do {
		cout<< "
nhap vao so phan tu cua mang :";
		cin >>n;
		if (n < 0 || n>100){
			cout << "
So phan tu k hop le. Xin kiem tra lai !";
			
		}
		
	}while (n<0 || n>100); //bi lap lai
	
	for(int i=0 ;i < n ;i++){
		cout << "
nhap vao a[" << i <<  "] = ";
		cin >>a[i];
		 	}

}
//=========================================

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

//===========================================
void chanle(int a[], int n)
{
cout<<"
Cac so xuat theo thu tu chan le: ";
for (int i=1;i<=n;i++)
{
if (a[i]%2==1)
cout<<a[i]<<" ";
}
for (int j=1;j<=n;j++)
		{
		if (a[j]%2==0)
		cout<<a[j]<<" ";
		}
}

//========chuong trinh chinh==========
int main()
{
	int a[MAX];
	int n;
	
	NhapMang(a, n);
	XuatMang(a, n);
	chanle(a, n);
	return 0;
}

angelfight viết 10:38 ngày 01/10/2018

bạn sửa ở hàm chanle . vòng lặp for cho i và j chạy i=0;i<n đi. thử coi có dc ko? đọc lại phần lý thuyết về mảng đi nhé. à mà code chưa tối ưu. tìm cách viết lại cho ngắn hơn nữa

Bùi Thế Hùng viết 10:40 ngày 01/10/2018

cảm ơn bác nha!!!

Huy viết 10:31 ngày 01/10/2018

for (int j=1;j<=n;j++)
{
if (a[j]%2==0)
cout<<a[j]<<" ";
}
}

phần này bản chất là kiểm tra giá trị mảng từ phần tử a[1] chứ không phải từ số 1 code đúng phải bắt đầu từ phần tử đầu tiên của mảng là a[0].

Bùi Thế Hùng viết 10:45 ngày 01/10/2018

cam on moi ng .minh da sua dc r

Bài liên quan
0