Từ 1 tới 2 trên tổng số 2 kết quả

Đề tài: bài tập c++ | cộng 2 số lớn dùng mảng trên C++?

  1. #1
    Ngày gia nhập
    10 2008
    Bài viết
    4

    Mặc định bài tập c++ | cộng 2 số lớn dùng mảng trên C++?

    sửa giùm mình đoạn code này!ý tưởng của mình là thêm n số 0 vào mảng nào ngắn hơn và sau đó tiến hành cộng 2 mảng có chỉ số bằng nhâu nhưng mà kết quả ra bị sai ko biết sai ở chổ nào hết xem giúp mình nha.thanks.



    Code:
    #include"iostream.h"
    #include"conio.h"
    #include"stdio.h"
    class solon
    {
    	private:
    		int *a;
    		int n;
    	public:
    		void nhap();
    		void xuat();
    		solon();
    		solon(int);
    		solon operator =(const solon&);
    		~solon();
    		void them0(int);//them 0 vao dau mang de thuc hien phep cong
    		int max(solon);  //tim so phan tu cua mang nao nhieu hon
    		solon operator +(solon);
    		solon operator *(solon);
    
    };
    solon::solon()
    {
    	this->n=1;
    	this->a=new int[n];
    }
    solon::solon(int m)
    {
    	n=m;
    	a=new int[n];
    	for(int i=0;i<n;i++)
    		a[i]=NULL;
    }
    solon solon::operator =(const solon &b)
    {
    	delete[] this->a;
    	n=b.n;
    	a=new int[n];
    	for(int i=0;i<n;i++)
    		a[i]=b.a[i];
            return *this;
    }
    solon::~solon()
    {
           delete[] this->a;
    
    }
    void solon::nhap()
    {
    	cout<<"nhap so ptu mang";
    	cin>>n;
    	for(int i=0;i<n;i++)
    	{
    		cout<<"ptu thu "<<i<<"\t";
    		cin>>a[i];
    	}
    }
    void solon::them0(int max)
    {
    	int i;
    	int temp,temp1;
    	if(n<max)
    	{
    		temp=n;  //luu vi tri thu n
    		temp1=n;
    		n=max;   //gan lai gia tri n cho mang
    
    		for(i=n-1;i>=0;i--)
    		{
    			a[i]=a[temp-1];
    			temp--;
    		}
    		for(int j=0;j<n-temp1;j++)
    			a[j]=0;
    	}
    }
    int solon::max(solon b)
    {
    	if(this->n>=b.n)
    		return n;
    	else
    		return b.n;
    }
    void solon::xuat()
    {
    	int i;
    	for(i=0;i<n;i++)
    		cout<<a[i];
    }
    solon solon::operator+(solon b)
    {
    	int Cn=max(b);
    	solon c(Cn+1);
    	if(this->n>b.n)
    		b.them0(n);
    	else
    		them0(b.n);
    
    	int nho=0;
    	int i=n-1;
    	while(i>=0)
    	{
    		c.a[i]=(this->a[i]+b.a[i]+nho)%10;
    		nho=(this->a[i]+b.a[i]+nho)/10;
    		i--;
    	}
    	c.a[0]=nho;
    	return c;
    }
    void main()
    {
    	clrscr();
    	int temp;
    	solon a;
    	solon b;
    	a.nhap();
    	a.xuat();
    	printf("\n");
    	b.nhap();
    	b.xuat();
    	printf("\n");
    	solon c;
    	c=a+b;
    	printf("tong 2 so\n");
    	c.xuat();
    	getch();
    }

  2. #2
    Ngày gia nhập
    04 2009
    Nơi ở
    Hà Nội
    Bài viết
    42

    Bạn có thể qua topic mình mới lập:http://forums.congdongcviet.com/showthread.php?t=18453
    Bài của mình cũng làm về số lớn. Lúc đầu mình cũng có ý tưởng như cậu nhưng khi thực hiện toàn bị lỗi. Fix mãi không được nên chuyển qua làm kiểu này.

Các đề tài tương tự

  1. Lập trình C++ trong visual studio có cách nào để dùng winform mà vẫn dùng cách viết trên c++ được ?
    Gửi bởi homgiaouoc trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 08-10-2013, 12:50 PM
  2. Cách dùng biến khi người dùng mở 1 trang trên 2 tab khác nhau
    Gửi bởi tuanngocpt trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 1
    Bài viết cuối: 24-08-2013, 08:28 AM
  3. MS SQL với C# So sánh tốc độ khi dùng CURSOR ở SQL với việc dùng for trên code c# khi cập nhật hàng loạt
    Gửi bởi david_tonny trong diễn đàn Thắc mắc Microsoft SQL Server & Microsoft Access
    Trả lời: 1
    Bài viết cuối: 23-04-2012, 11:46 AM
  4. sort dùng Icomparer | Sắp xếp dùng Icomparer trên C#?
    Gửi bởi angeltrongminh trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 7
    Bài viết cuối: 22-10-2010, 12:20 AM
  5. Lỗi khi dùng vc++ trên vista
    Gửi bởi neo202 trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 1
    Bài viết cuối: 15-07-2009, 04:26 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn