回复 4楼 遮天云
怎么说呢
个人认为那个还没有我做的好理解
#include<stdio.h>
#include <stdlib.h>
#include<string.h>
main()
{
char n1[100],n2[100];
int sum[102];
int len1,len2;
int max,min,t;
int i=0;
printf("输入第一个大数:");
scanf("%s",n1);
printf("输入第二个大数:");
scanf("%s",n2);
len1=strlen(n1);
len2=strlen(n2);
printf("第一个数有%d位\t num1=%s",len1,n1);
printf("\n");
printf("第二个数有%d位\t num2=%s",len2,n2);
printf("\n");
max=(len1>=len2)?len1:len2;
min=(len1<=len2)?len1:len2;
t=max;
while (t>0)
{
len1--;
len2--;
if (min>0)
如果比较少位数的那个数还没有加完
那就继续加
sum[t]=(n1[len1]-'0')+(n2[len2]-'0');
else
如果加完了
那就把比较多位数的剩下的数都直接放在sum【】中去
但要先判断哪个数还有剩余
if (len1>=len2)
sum[t]=n1[len1]-'0';
else sum[t]=n2[len2]-'0';
min--;
t--;
}
sum[0]=0;
while (i<=max)
这儿才把每个sum[i] 判断是否大于10
进位的关系
{
while (sum[i]>=10)
{
sum[i]-=10;
sum[--i]+=1;
}
i++;
}
i=(sum[0]==0)?1:0;
printf("sum==");
for (;i<=max;i++)
{
printf("%d",sum[i]);
}
}
我想想你们说的倒叙怎么弄先
还有啊
其实我的主要问题是后面的问题不懂
还请讲解讲解
比如说2楼说的动态分配空间是怎么回事?而且他也理解错了我的问题
我是想说怎么让它继续运行下去
输入的字符过大
会出现那叫什么问题的问题
反正是不能继续运行下去了
还有他所说的单个字符转化??什么函数来的?
那个要更简单的运算法
我也会继续想的
谢谢啦
希望能回答我更多的疑问