一道C语言改错题

某数列的前两项是3和2,其后续项是前面最后两项的乘积,按下列规则生成:(1)若乘积为一位数,则该乘积即为数列的后续项;(2)若乘积为两位数,则该乘积的十位数字和个位数字依... 某数列的前两项是3和2,其后续项是前面最后两项的乘积,按下列规则生成:(1)若乘积为一位数,则该乘积即为数列的后续项;(2)若乘积为两位数,则该乘积的十位数字和个位数字依次作为数列的两个后续项
例如:该数列的前10项为:3、2、6、1、2、2、4、8、3、2
函数sum按要求生成数列的前n(n<50)项,存入首指针为pa的数组中,计算并返回前n项的和
#include <stdio.h>
#define N 50
void sum(int n,int *pa)
{
int count, total,temp;
*pa=3;*++pa=2;
total=5; count=2;
while(count++<n)
{
temp=*(pa-1)**pa;
if(temp<10)
{
total+=temp; *(++pa)=temp;
}
else
{*++pa=temp/10;
total+=*pa;
if(count<n){count++; *pa++=temp%10; total=*pa;}
}
}
return total;
}

main()
{ int tol,n,I,num[n];
do
{
printf(“Input n=?(2<n<50)”);
scanf(“%d”,&n);
}while(n<=2||n>=50);
tol=sum(N,num);
for(i=0;i<n;i++)
printf((i+1)%5?”%5d”:”%5d\n”,num[i]);
printf(“\n”);
printf(“%d”,tol);
}
展开
 我来答
号阿壹3
2009-04-17 · TA获得超过728个赞
知道小有建树答主
回答量:458
采纳率:0%
帮助的人:401万
展开全部
#include <stdio.h>
#define N 50
int sum(int n,int *pa) //
{
int count, total,temp;
*pa=3;*++pa=2;
total=5; count=2;
while(count++<n)
{
temp=*(pa-1)*(*pa);//
if(temp<10)
{
total+=temp; *(++pa)=temp;
}
else
{*++pa=temp/10;
total+=*pa;
*(++pa)=temp%10;//
total+=*pa;
//if(count<n){count++; *pa++=temp%10; total=*pa;}
}
}
return total;
}

main()
{ int tol,n,i,num[N];//

do
{
printf("Input n=?(2<n<50)"); //
scanf("%d",&n);
}while(n<=2||n>=50);
tol=sum(n,num); //
for(i=0;i<n;i++)
printf((i+1)%5?"%5d":"%5d\n",num[i]);
printf("\n");
printf("%d",tol);
}

编译通过啦,给分撒
阳光上的桥
2009-04-17 · 知道合伙人软件行家
阳光上的桥
知道合伙人软件行家
采纳数:21424 获赞数:65799
网盘是个好东东,可以对话和传文件

向TA提问 私信TA
展开全部
下面程序正确:

#include <stdio.h>
#define N 50
int sum(int n,int pa[]){
  int i,total,temp;
  pa[0]=3;pa[1]=2;
  total=5;
  i=1;
  while(i<n-1){
    temp=pa[i-1]*pa[i];
    if (temp>9){
      i++;
      pa[i]=temp/10;
      total+=pa[i];
      temp%=10;
    }
    i++;
    pa[i]=temp;
    total+=pa[i];
  }
  return total;
}

main(){
  int tol,n,i,num[N];
  do{
    printf("Input n=?(2<n<%d)", N);
    scanf("%d",&n);
  }while(n<=2 || n>=N);
  tol=sum(n,num);
  for(i=0;i<n;i++)
    printf((i+1)%5?"%5d":"%5d\n",num[i]);
  printf("\nsum=%d\n",tol);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
vbtraz
2009-04-17 · TA获得超过5530个赞
知道大有可为答主
回答量:4152
采纳率:0%
帮助的人:4415万
展开全部
首先 , sum的定义错了, 你是希望它返回个和的,可是定义成 void sum了

然后main定义没写返回值 , 应该是 void main()或者 int main()

然后 int num[n]这是不行的, 定义数组时必须在编译期间确定长度, n是个变量,编译期间确定不了,所以不能用它做初始化
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式