class BigInt
{
private:
static const int max_length = 300;
int c;
int number[max_length];
int to_int(char symbol)
{
return (symbol >= '0' && symbol <= '9') ? (int)symbol - '0' : -1;
}
public:
BigInt(char* str)
{
c = strlen(str) - 1;
int pos = 0;
if (c > max_length)
{
cout << "Max length is " << max_length << "but your number has length"
<< c << endl;
return;
}
for (int i = c; i <= 0; i--)
{
number[pos] = to_int(str[i]);
pos++;
}
}
void printNumber(void)
{
for (int i = c; i >= 0; i--)
{
cout << number[i];
}
cout << "\n";
}
};
有一个构造函数接受一个字符串数字,其数字被写入数字数组。输出这个数组时,出于某种原因我得到了随机值。
int main(void)
{
char str[]="111111111";
BigInt test(str);
test.printNumber();
return 0;
}
你为什么减去1?长度就是长度,没必要。
<=
假设这是一个错字。是的,不是打字错误,而是错误... =)
是这样的:
好吧,即 直到
i
它大于零,然后......您设置的条件不正确。
我通常会这样重写您的代码:
然而 -
c
一个应该意味着类中某些东西的变量的名称并不好。这是局部循环变量的名称,例如……但不是数字的长度。