C++数据结构分别用顺序表和单链表的存储形式

分别用顺序表和单链表的存储形式实现将输入的两个大整数(超过20位)相加并打印和值;自行设计基本操作,要求两种存储结构中操作接口相同

存储结构的引入是为了将大数字分解成若干个小数字么?

大数相加必须,分解成若单个小数字呀,采用哪个储存结构只是题目要求而已,用数组也可以实现代码如下#include
#include
int main()
{
char str1[1001], str2[1001];
int t, i, len_str1, len_str2, len_max, num = 1, k;
scanf("%d", &t);
getchar();
while(t--){
int a[1001] = {0}, b[1001] = {0}, c[1001] = {0};
scanf("%s", str1);
len_str1 = strlen(str1);
for(i = 0; i <= len_str1 - 1; ++i)
a[i] = str1[len_str1 - 1 - i] - '0';
scanf("%s",str2);
len_str2 = strlen(str2);
for(i = 0; i <= len_str2 - 1; ++i)
b[i] = str2[len_str2 - 1 - i] - '0';
if(len_str1 > len_str2)
len_max = len_str1;
else
len_max = len_str2;
k = 0;
for(i = 0; i <= len_max - 1; ++i){
c[i] = (a[i] + b[i] + k) % 10;
k = (a[i] + b[i] + k) / 10;
}
if(k != 0)
c[len_max] = 1;
printf("Case %d:\n", num);
num++;
printf("%s + %s = ", str1, str2);
if(c[len_max] == 1)
printf("1");
for(i = len_max - 1; i >= 0; --i){
printf("%d", c[i]);
}
printf("\n");
if(t >= 1)
printf("\n");
}
return 0;

}

以大机弋人上七一一一一一一一一一一