30/09/2018, 16:04
Dùng STL Container Stack để chuyển từ hệ 10 sang hệ 2
Lỗi sai của chương trình này ?
#include <iostream>
#include <stack>
using namespace std;
int main()
{
stack<int> nhiPhan;
int n = 4;
while(n > 0)
{
int dv = n%2;
nhiPhan.push(dv);
n = n/2;
}
for(int i = 0; i < nhiPhan.size(); i++)
{
cout << nhiPhan.top();
nhiPhan.pop();
}
return 0;
}
Bài liên quan
Nhìn vào thấy hay, đang tính comment khen thì đọc ngay cái câu “Tìm lỗi sai”. Ẹc, bookmark hóng cao nhân vào xử.
sai chỗ vòng lặp,tại lúc trưa ngồi code bài tương tự nên mới biết, bình thường không debug chắc chịu. vì số phần tử trong stack giảm dần sau mỗi lần lặp (hàm pop()), trong khi i tăng dần, =>tối thiểu có stack[n-1] với n>=2…trong không bao giờ truy xuất dc. Không biết giải thích đúng k nữa, có j bạn nào giải thích cho dễ hiểu hơn với.
thay
for(int i = 0; i < nhiPhan.size(); i++)
bằngwhile(nhiPhan.size()>0)
đúng rồi chứ gì nữa đáp án là đây này
@Dung_Kon nghiên cứu thêm STL nữa đi, khi ra trường sẽ trùm C++ luôn
I moved a post to a new topic: lỗi Break khi run