Một số câu hỏi về C++

Em mới học C++ và có một số thắc mắc mong mọi người giúp đỡ ạ.
+) Làm sao để tạo một mảng với số lượng phần tử được nhập từ bàn phím ạ. Ví dụ em nhập n thì làm sao để khai báo một mảng với đúng n phần tử.
+) Làm sao để thực hiện 1 vòng lặp với số lần lặp phụ thuộc vào input. Em gặp 1 bài có số lần input vào không xác định.

1 Like

Trước khi trả lời em muốn hỏi 1 chút ạ:

  • Anh đã học đến cấp phát động trong C++ chưa ạ.
  • Anh đã đã học vòng lặp for trong C++ chưa ạ.
  • Anh đã tra google chưa ạ.
1 Like

mình sẽ giả sử là bạn đã học nhập/xuất, khai báo mảng và cấu trúc của for rồi :)))

+) Làm sao để tạo một mảng với số lượng phần tử được nhập từ bàn phím ạ. Ví dụ em nhập n thì làm sao để khai báo một mảng với đúng n phần tử

giờ giả sử mình khai báo mảng 5 phần tử đi nhé

int arr[5];

và giờ bạn nhập n tượng trưng cho số lượng phần tử mảng

int n; cin >> n;

ngẫm ra rồi chứ ?

+) Làm sao để thực hiện 1 vòng lặp với số lần lặp phụ thuộc vào input. giả sử bạn muốn for nó lặp 5 lần đi

for (int i = 1; i <= 5; ++i) cout << i << ' ';
// hoặc nếu bạn thích số 0
for (int i = 0; i < 5; ++i) cout << i << ' ';

và giờ bạn muốn lặp n lần thì như nào ?

Em gặp 1 bài có số lần input vào không xác định.

nếu không xác định số lần lặp thì cần gì lặp phụ thuộc vào input nhỉ ?

4 Likes

ý mình không phải input n. mà mình gặp một bài map giữa tên người và sdt. sau khi nhập. nó cho input là tên người để kiểm tra sdt với số số tên không xác định.

nếu theo bạn nói thì chắc dùng cái này là ổn: Hỏi về while (cin>>x)?

3 Likes

Trường hợp này bạn dùng vòng lặp

do {
   statement(s);
} while( condition );

nhé

Link tham khảo
https://www.tutorialspoint.com/cprogramming/c_do_while_loop.htm

1 Like

Cảm ơn bạn nhiều nha! Cho mình hỏi một điều nữa là nếu mình cần một mảng 2.10^5 phần tử thì liệu khai báo array thông thường có được không hay cần dùng cách khác.

nếu các dữ liệu input không có mối quan hệ với nhau thì nhập dữ liệu rồi xử lý, khỏi tạo mảng
còn nếu có thì bất khả kháng phải tạo :v

4 Likes

Vẫn có thể khai báo một mảng có rất nhiều phần tử, kể cả là 2.10^5 phần tử đi chăng nữa. Tuy nhiên, để làm được thì phải dùng đến thuộc tính tĩnh (static) hoặc cấp phát động (malloc), nếu không sẽ bị dính lỗi Stack Overflow.


Số phần tử tối đa mà một mảng có thể có còn tùy vào dung lượng bộ nhớ (ở đây là RAM) mà chương trình khai báo mảng đó có thể truy cập được.

3 Likes

Cái này thi cần ạ. Nên mình phải tạo mảng.

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