帮我看看这个高精为什么运行不出来,谢谢
#include <bits/stdc++.h>
using namespace std;
class INT
{
private:
int num[1000];
int len;
public:
INT IN()
{
INT n;
int num1[1000];
string c;
cin >> c;
for(int i = 0; i < c.size(); i++) this->num[c.size() - i] = c[i] - '0';
for (int i = 0; i < c.size(); i++) this->num[i] = num1[i];
n.len = c.size();
return n;
}
INT OUT()
{
for(int i=this->len; i>=1; i--) cout << this->num[i];
}
INT operator+( const INT& b)
{
INT w;
w.len = max(this -> len, b.len);
for(int i=1; i<=w.len; i++)
{
w.num[i] += this -> num[i] + b.num[i];
w.num[i+1] += w.num[i] / 10;
w.num[i] %= 10;
}
if(w.num[w.len + 1] != 0) w.len ++;
return w;
}
INT operator-(const INT& b)
{
INT w;
w.len = this->len;
for(int i=1; i<=w.len; i++)
{
if(this->num[i] < b.num[i])
{
this->num[i+1] --;
this->num[i] += 10;
}
w.num[i] += this->num[i] - b.num[i];
}
while(w.num[w.len] == 0 && (w.len != 1)) w.len --;
return w;
}
INT operator*(const INT& b)
{
INT w;
int x;
for(int i=1; i<=this->len; i++)
{
x = 0;
for(int j=1; j<=b.len; j++)
{
w.num[i+j-1] += this->num[i] * b.num[j] + x;
x = w.num[i+j-1] / 10;
w.num[i+j-1] %= 10;
}
w.num[i+b.len] = x;
}
w.len = this->len + b.len;
while(w.num[w.len] == 0 && (w.len != 1)) w.len --;
}
};
int main()
{
INT a = a.IN();
INT b = b.IN();
a*b.OUT();
return 0;
}