#include <stdio.h>
#include <stdlib.h>
int main()
{
int len,row=1,len1;
int a[1000];
while(scanf("%d",&len)!=EOF)
{
if(row==1)
{
for(int i=0;i<1000;i++)
{
a[i]=0;
}
len1=len;
for(int i=0;i<len;i++)
{
scanf("%d",&a[i]);
}
row++;
}
else
{
int e;
for (int i=0;i<len;i++)
{
scanf("%d",&e);
a[i]=a[i]+e;
}
if(len>len1);{
len1=len;}
for(int i=0;i<len;i++){
printf("%d",a[i]);
if(i<len1-1)
printf(" ");
a[i]=0;
}
printf("\n");
row=1;
}
}
if(row==1)
{
for(int i =0;i<len1;i++){
printf("%d",a[i]);
if(i<len1-1)
printf(" ");}
}
}
typedef struct _node
{
int *list;
int num;
} node;
void input(node *a, int n)
{
a->num = n;
a->list = (int *)calloc(n, sizeof(int));
for (int i = 0; i < n; i++)
scanf("%d", &a->list[i]);
}
int main()
{
int len, row = 0, i, j;
node a[1000] = {0};
node b[1000] = {0};
node c[500] = {0};
while (1)
{
if (scanf("%d", &len) != EOF)
{
input(&a[row], len);
row++;
}
else
break;
if (scanf("%d", &len) != EOF)
{
input(&b[row - 1], len);
}
else
break;
}
int ai, bi , ci, max;
for (i = 0; i < row; i++)
{
ai = bi = ci = 0;
max = (a[i].num > b[i].num) ? a[i].num : b[i].num;
c[i].list = (int *)calloc(max, sizeof(int));
c[i].num = max;
while (ai < a[i].num && bi < b[i].num)
{
c[i].list[ci++] = a[i].list[ai++] + b[i].list[bi++];
}
if (ai != a[i].num)
{
while (ai < a[i].num)
{
c[i].list[ci++] = a[i].list[ai++];
}
}
if (bi != b[i].num)
{
while (bi < b[i].num)
{
c[i].list[ci++] = b[i].list[bi++];
}
}
}
for (i = 0; i < row; i++)
{
for (j = 0; j < c[i].num; j++)
{
printf("%d ", c[i].list[j]);
}
printf("\n");
}
return 0;
}
可以查看手册:c语言-exp() 中的内容