Lỗi trên class c++?

Xin chào mn!
mình đang làm bài tập tạo class stack. Mình đang dùng dev C.
Vấn đề là mình có 1 đoạn code:

  1. Tạo 1 Source file thường thì chạy ok.
  2. Tạo 1 project thì nó chạy sai không giống kết quả ở cách 1 nó bị dư số 0.

Phần code:

  1. Chung:
    http://cpp.sh/56wsa
  2. Tách riêng:
    file.cpp :http://cpp.sh/3afmi
    main: http://cpp.sh/6ecsh

2 phần code trên thì giống nhau cả, mình chỉ cắt phần cpp riêng mà main riêng
Mình cũng không hiểu nó bị gì? Mong mọi người giúp đỡ mình với ạ
Với thêm khi code kiểu tạo project trên DevC bị lỗi là:
Mình sửa phần cpp rồi mà khi compile thì nó vẫn k nhận cái mình sửa mà phải thay đổi biến bên hàm main lại rồi compile thì nó mới hiểu là code đã được thay đổi và chạy theo code mới?
Mong mọi người chỉ cách khác phục với ạ.

A post was merged into an existing topic: Topic lưu trữ các post off-topic - version 3

1 Like

Bạn cout ra dư số 0 thôi =))

có đâu?
bạn chạy thử đi

Mình cũng bị vậy.và chưa có giải pháp gì :frowning:

bị cái thứ 2 hay thứ 1,thứ 2 thì giả vờ xoá cái khái báo biến rồi gõ lại là chạy được.cách fix thì chịu,mình chưa biết

Mình bị cái thứ 2 ấy.cứ chạy bình thường thì k sao.nhưng khi đưa vào class.chạy kết quả thì sẽ xuất hiện hàng số không xác định

đừng tạo project
mà chỉ dùng Source thôi,làm trong 1 file cũng dc,mà mình làm gì có dòng chứ ấy nhỉ?,bạn đứa code mk chạy xem.
hoặc dùng visual studio kia

#include<cstring>
using namespace std;

int tongCS(int n) {
	
	cout<<"1.Tong CS =";
	int du=0;
	while(n!=0)   {
	du+=n%10;
	n=n/10;
    }
	cout<<du;
}

int heso(int n) {
	
	int coso,sodu=0;
	char x[100];
	cout<<"\nCo so=";
	cin>>coso;
	int i=0;
	while(n!=0) {
	   sodu=n%coso;
		if(sodu<10) {
			x[i]='0'+sodu;
		}
		if(sodu>10) {
			x[i]='A'+(sodu-10);
		}
		i++;
		n=n/coso;
	}
	x[i]='\0';
	cout<<"\n2.Chuyen doi n sang he co so b: ";
	for(int i=strlen(x)-1;i>=0;i--) 
	cout<<x[i]<<" ";
}
int main() {
	int n;
	cout<<"Nhap n= ";
	cin>>n;
    tongCS( n);
    heso(n);
    }~~~~~~
Đó là code bình thường
#include<cstring>
using namespace std;
class bai1 {
	private: 
	       int n;
	public: 
	       int tongCS(void);
		   int heso(void);
};

int bai1::tongCS(void) {
	cout<<"Nhap n= ";
	cin>>n;
	cout<<"1.Tong CS =";
	int du=0;
	while(n)   {
	du+=n%10;
	n=n/10;
    }
	return (du);
}

int bai1::heso(void) {
	cout<<"Nhap n=";
	cin>>n;
	int coso,sodu=0;
	char x[100];
	cout<<"\nCo so=";
	cin>>coso;
	int i=0;
	while(n!=0) {
	   sodu=n%coso;
		if(sodu<10) {
			x[i]='0'+sodu;
		}
		if(sodu>10) {
			x[i]='A'+(sodu-10);
		}
		i++;
		n=n/coso;
	}
	x[i]='\0';
	cout<<"\n2.Chuyen doi n sang he co so b: ";
	for(int i=strlen(x)-1;i>=0;i--) 
	cout<<x[i]<<" ";
}
int main() { bai1 bai;
    cout<<bai.tongCS()<<endl;
    cout<<bai.heso()<<endl;
    ~~~~~
còn đây là code với class. khi chạy cứ ra dãy số không xác định. helpp me

bạn thêm dấu:ở đầu phần code và ở cuối phần code để nó hiển thị rõ ràng nha
ok để mình xem

mình sửa rồi đó.xem giúp mình với.mình cảm ơn nhé

Xin lỗi!
mình là member mới nên k cho phép comment nhiều nên giờ mới tl được
Code thì đặt tên class biến liên quan đến bài làm chứ?
Trình bày code khó nhìn quá,tìm lỗi cũng mệt?
Bạn làm bài tập gì thế?
cho mình xin tên đề bài

Phương thức bai1::heso() bạn không trả về (return) gì à?

3 Likes

chỉ là bài đơn giản tìm tổng chữ số của n và hệ số cơ số b của nó.cậu giúp mình với nhé

Bạn có thể tự lập topic rồi đưa vấn đề của mình vô đó mà. :slight_smile:

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