简介:
C语言中,整型占4字节,现在要计算两个100(假设)位以内的数想加,如果只是用整型去存储,明显就会越界。那么,我们有什么好的方法去完成这一操作呢?
1.用数组实现
数组中可以可以存储一定长度的字符串。
// 移位
void move_num(char num[])
{
int n = strlen(num);
int j = ;
int i;
for(i=;i<=n;i++)
{
num[j] = num[n-i];
j--;
}
// 在空余位上补0
while(j>=)
{
num[j] = '';
j--;
}
} // 交换(数组中存放的都是字符,要转换成整数才可以相加)
void conv_num(char num[])
{
int i ;
for(i=;i<;i++)
{
num[i] = num[i] - '';
}
} // 相加加
void add(char num1[],char num2[])
{
int i;
for(i = ; i >;i--)
{
num1[i] = num1[i] + num2[i];
if(num1[i] >= )
{
num1[i-] += num1[i] / ; // 进位
num1[i] = num1[i] % ;
}
}
} // 输出
void print(char num[])
{
int i = ;
// 让前面的0不输出
while(num[i] == '')
{
i++;
}
for(;i<;i++)
{
printf("%s",num[i]);
}
}