【说明】 已知某数列的前两项为2和3,其后继项根据当前最后两项的乘积按下列规则生成: (1)若乘积为一位数,则该乘积即为数列的后继项; (2)若乘积为二位数,则该乘积的十位数和个位数依次作为数列的两个后继项。 本程序输出该数列的前n项以及它们的和。其中,函数sum(n,pa)返回数列的前n项之和,并将生成的前n项存放于首指针为pa的数组中。程序中规定输入的n值必须大于2并且不超过给定的常数值MAXNUM。 例如:若输入n值为10,则程序输出如下内容: sum(10)=44 2 3 6 1 8 8 6 4 2 4 #include<stdio.h> #define MAXNUM 100 int sum(int n,int *pa){ int count,total,temp; *pa=2; (1) =3; total=5; count=2; while(count++<n){ temp+=*(pa-1)**pa; if(temp<10){ total+=temp; *(++pa)=temp; } else{ (2) =temp/10; total+=*pa; if(count<n){ count++;pa++; (3) =temp%10; total+=*pa; } } } (4) ; } main(){ int n,*p,*q,num[MAXNUM]; do{ printf("Input N=(2<N<%d):",MAXNUM+1); scanf("%d",&n); }while( (5) ); printf("\nsum(%d)=%d\n",n,sum(n,num)); for(p=num,q= (6) ;p<q;p++)printf("%4d",*p); printf("\n"); }