用函数写一个后继项的问题,求各位大神解答
请编写函数void fun(int a[],int n),其功能是:生成并一个数列的前20项。该数列的第一、二项分别为2、3,其后继项按下列规则生成:若前两项的乘积是一位数,则取该乘积为后继项;若前两项的乘积是二位数,则取该乘积的十位数字和个位数字依次作为数列的两个后继项。编写main函数,声明一个足够大的数组a(数组长度为100),并从键盘上输入待生成数列中元素的个数n,用a和n作为实在参数调用函数fun,按每行5个依次输出数列中的各数。#include <stdio.h>
#define N 16
int f(int n,int a[]);
void main()
{
int i,n,b[N],w;
scanf("%d",&n);
// for(i=0;i<n;i++)
w=f(n,b);
printf("%5d",w);
}
int f(int n,int a[] )
{
int s,r,t,i;
s=0;
if(i==0)
a[0]=2;
if(i==1)
a[1]=3;
else
{ for(i=2;i<n;i++)
s=a[i-1]*a[i-2];
if(s/10>0)
{ a[i]=s/10;
a[++i]=s%10;}
else
a[i]=s;}
return(a[i]);
怎么运行不对?