我正在爲學校做一個項目,我需要創建一個bigint類,並且它迄今有4個需求。運算符==超載
1.)寫一個寫一個bigint的方法,每行最多打印80個數字。
2.)編寫一個方法來比較兩個bigint是否相等。它應該返回一個布爾值。
3.)編寫一個方法來初始化一個bigint爲你提供的int值[0,maxint]。
4.)編寫一個方法來初始化bigint到char []。
我認爲我有2和3是正確的,但我在比較兩個bigint時遇到了麻煩,我希望有人能夠在正確的方向上引導我如何將打印限制爲每行80個數字。
這裏是我到目前爲止的代碼:
.h文件中
class bigint
{
public:
bigint(); //default constructor
bool operator==(const bigint& num1);
bigint(int n);
bigint(char new_digits[]);
private:
int digit[MAX];
int digitb[MAX];
};
這裏是實現文件:
#include "bigint.h"
#include<cassert>
#include<iostream>
//default constructor
bigint::bigint()
{
for (int i = 0; i < MAX; i++)
{
digit[i] = 0;
}
}
bigint::bigint(int n)
{
int i = 0;
while(n > 0)
{
digit[i] = n % 10;
n = n /10;
++i;
break;
}
for(i; i< MAX; ++i)
digit[i] = 0;
}
bool bigint::operator==(const bigint& num1)
{
for(int i = 0; i < MAX; i++)
{
if (num1.digit == num1.digit)
return true;
}
return false;
}
bigint::bigint(char new_digit[])
{
int i = 0;
//Reads the characters of numbers until it is ended by the null symbol
while(new_digit[i] != '\0')
++i;
--i;
//Converts the characters into int values and puts them in the digit array
while(i >= 0)
{
digit[i] = new_digit[i] - '0';
--i;
}
}
}
int main()
{
#include<iostream>
using namespace std;
using PROJECT_1::bigint;
bigint a(0);
assert(a == 0);
}
順便說一句,我不是要得到答案我我剛剛在一小時前開始的作業。我一整天都在努力工作,最後我投入並尋求幫助。
A)請正確格式化您的代碼,而不是道歉。編輯並不難以掌握B)這真的不是一個「爲我工作」的網站;讓你的帖子可讀後,解釋你已經嘗試了什麼,或者至少說明你目前的思路。如果提供了這兩件事情,人們更願意提供幫助。 – 2012-01-30 06:19:20
哦,而operator ==總是返回true。問題在於: if(num1.digit == num1.digit) 還有其他問題 - 我的第一個問題是:「數字」數組的表示是什麼?更具體地說,「digit [0]」是最重要的數字還是最不重要的數字? – 2012-01-30 06:34:44