作业七-ID-1052-Problem D: Sequence Problem (III) : Array Practice

来源:互联网 发布:苹果mac好用吗 编辑:程序博客网 时间:2024/05/16 08:26

Problem D: Sequence Problem (III) : Array Practice

题目描述:
这里写图片描述
解题思路:
依然要注意奇偶情况以及最后一次的情况。
与前两题不同,这一个题是每一次输出的数组规则是:
对输入的整数序列两两相加:第1行和第2行相加、第2行和第3行相加……按顺序输出结果:每行输出一个整数序列,每两个整数之间用一个空格分隔。若最后序列不足两个,则视作补一个长度为0的整数序列相加。
值得注意的是一个长度为0的整数序列也应该有输出,即使没有整数输出,也应该占有一行,因为“每行输出一个整数序列”。
给出代码:

#include <stdio.h>#include <stdlib.h>#include <string.h>int main(){    int a[2100],b[2100];    int m,n,i,j,k,x1=0,x2=0,h;    scanf("%d",&k);    int count1=1;    memset(a,0,sizeof(a));    memset(b,0,sizeof(b));    while(count1<=k){            if(count1==1&&k==1)        {            scanf("%d",&j);            if(j==0)            {                printf("\n");            }            else            {                for(i=1;i<=j;i++)                {                    scanf("%d",&a[i]);                }                x1=i-1;                for(i=1;i<=x1;i++)                   {                       if(i==1)                        printf("%d",a[i]+b[i]);                        else                        printf(" %d",a[i]+b[i]);                   }                   printf("\n");            }            break;        }        if(count1==1)        {            scanf("%d",&h);            if(h==0)           {               x1=0;           }           else           {             for(i=1;i<=h;i++)            {                scanf("%d",&a[i]);            }            x1=i-1;           }            count1++;        }       if(count1!=1&&count1%2!=0&&count1<=k)       {   scanf("%d",&h);           if(h==0)           {               x1=0;           }           else           {              for(i=1;i<=h;i++)           {             scanf("%d",&a[i]);           }           x1=i-1;           }           if(x1==0&&x2==0)            printf("\n");           else           {            if(x1>x2)               {                   for(i=1;i<=x1;i++)                   {                       if(i==1)                        printf("%d",a[i]+b[i]);                        else                        printf(" %d",a[i]+b[i]);                   }               }               else                {                   for(i=1;i<=x2;i++)                   {                       if(i==1)                        printf("%d",a[i]+b[i]);                        else                        printf(" %d",a[i]+b[i]);                   }               }               printf("\n");           }           x2=0;           memset(b,0,sizeof(b));           if(count1==k)           {              if(x1==0)                    printf("\n");              else              {                for(i=1;i<=x1;i++)                   {                       if(i==1)                        printf("%d",a[i]+b[i]);                        else                        printf(" %d",a[i]+b[i]);                   }                   printf("\n");              }           }           count1++;       }       if(count1%2==0&&count1<=k)       {    scanf("%d",&h);          if(h==0)            x2=0;          else          {              for(i=1;i<=h;i++)           {               scanf("%d",&b[i]);           }           x2=i-1;          }           if(x1==0&&x2==0)            printf("\n");           else           {               if(x1>x2)               {                   for(i=1;i<=x1;i++)                   {                       if(i==1)                        printf("%d",a[i]+b[i]);                        else                        printf(" %d",a[i]+b[i]);                   }               }               else                {                   for(i=1;i<=x2;i++)                   {                       if(i==1)                        printf("%d",a[i]+b[i]);                        else                        printf(" %d",a[i]+b[i]);                   }               }               printf("\n");           }           x1=0;           memset(a,0,sizeof(a));           if(count1==k)           {              if(x2==0)                    printf("\n");              else              {                for(i=1;i<=x2;i++)                   {                       if(i==1)                        printf("%d",a[i]+b[i]);                        else                        printf(" %d",a[i]+b[i]);                   }                   printf("\n");              }           }           count1++;       }    }    return 0;}
0 0
原创粉丝点击