Giới hạn số lượng phần tử trong mảng

Chào các bác ạ, tui khai báo Max số lượng phần tử là 5, nhưng khi nhập 6 phần tử thì nó cũng xuất ra 6 phần tử luôn, vậy cái điều kiện Max ấy để làm gì vậy, mấy pro giúp với, cảm ơn ạ.

#include <iostream>
using namespace std;

const int MAX = 5;
struct ARRAY
{
	int list[MAX];
	int n;
};

void Nhap(ARRAY &a);
void Xuat(ARRAY a);
int TongDuong(ARRAY a);

void main()
{
	ARRAY a;
	Nhap(a);
	cout << "Day so vua nhap: ";
	Xuat(a);
	int s = TongDuong(a);
	cout << "\nTong duong la: " << s;
	system("pause");
}

void Nhap(ARRAY &a)
{
	cout << "\nNhap so phan tu: ";
	cin >> a.n;
	for (int i = 0; i < a.n; i++)
	{
		cout << "a[" << i << "] = ";
		cin >> a.list[i];
	}
}

void Xuat(ARRAY a)
{
	for (int i = 0; i < a.n; i++)
	{
		cout << " " << a.list[i];
	}
}

int TongDuong(ARRAY a)
{
	int kq = 0;
	for (int i = 0; i < a.n; i++)
	{
		if (a.list[i] > 0)
		{
			kq += a.list[i];
		}
	}
	return kq;
}

Post code lên đi bạn :smiley:

tui post rùi đó bác.

thường thì bác vẫn có thể truy xuất vài phần tử sau mảng. nhưng bác cứ thử thêm nhiều phần tử vào mảng nữa xem. sẽ thấy n chết ạ. hoặc khi bác dùng con trỏ thì sẽ thấy rõ ạ.

1 Like

Tui cảm ơn bác, nhập thừa 1 phần tử thì nó cho sử dụng, còn nhập thừa 2 phẩn tử trở lên thì nó không chạy đúng nữa.

1 Like

Cho tui hỏi là trong hàm main ARRAY a có nghĩa là gì vậy.

Tức là a là kiểu ARRAY thôi.

1 Like

Khai báo struct a thôi mà.

P/s:

  • Code C++ mà dùng void main?
  • Không biết bạn lấy code này ở đâu, nhưng lần sau cố gắng đọc kĩ lại cả code trước khi hỏi.

à, cái này mình làm theo sách thực hành trên trường, thầy cô dạy vậy mà.

tui cảm ơn bác…

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?