c语言的题,求高手解答
填空题若输入三个整数3,2,1,则以下程序的输出结果是()#include<stdio.h>voidsub(intn,intuu[]){int;t=uu[n--];t+=...
填空题
若输入三个整数3,2,1,则以下程序的输出结果是 ()
#include < stdio .h>
void sub(int n,int uu[])
{int;
t=uu[n--];t+=3*uu[n];
n++;
if (t>=10){uu[n++]=t/10;uu[n]=t%10;}
else uu[n]=t;
}
main()
{int i,n,aa[10]={0};
scanf (“%d%d%d”,&n,&aa[0],&aa[1]);
for (i=1;i<n;i++)sub (i,aa);
for (i=1;i<=n;i++)printf(“%d”,aa[i]);
printf(“\n”);
}
结果是2721,求大师讲解,详细过程 展开
若输入三个整数3,2,1,则以下程序的输出结果是 ()
#include < stdio .h>
void sub(int n,int uu[])
{int;
t=uu[n--];t+=3*uu[n];
n++;
if (t>=10){uu[n++]=t/10;uu[n]=t%10;}
else uu[n]=t;
}
main()
{int i,n,aa[10]={0};
scanf (“%d%d%d”,&n,&aa[0],&aa[1]);
for (i=1;i<n;i++)sub (i,aa);
for (i=1;i<=n;i++)printf(“%d”,aa[i]);
printf(“\n”);
}
结果是2721,求大师讲解,详细过程 展开
5个回答
展开全部
结果应该是721;
先看main函数,i=1时,i<3,调用sub(i,aa)-->sub(1,aa[])
t=uu[n--]=uu[n]=u[1]=1;n自减1,变为0;
t=t+3*uu[0]=1+3*2=7;n自加1,变为1;
因为t<10,所以执行else语句,uu[1]=7;
把函数值返回主函数,得aa[1]=7;
i=2时,i<3,调用sub(i,aa)-->sub(2,aa[])
t=uu[n--]=uu[n]=u[2]=0;n自减1,变为1;
t=t+3*uu[1]=0+3*7=21;n自加1,变为2;
因为t>10,所以执行if语句,
uu[2]=t/10=21/10=2;n自加1,变为3;
uu[3]=t%10=21%10=1.
把函数值返回主函数,得aa[2]=2,aa[3]=1。
输出a[1],a[2],a[3]得7 2 1.
先看main函数,i=1时,i<3,调用sub(i,aa)-->sub(1,aa[])
t=uu[n--]=uu[n]=u[1]=1;n自减1,变为0;
t=t+3*uu[0]=1+3*2=7;n自加1,变为1;
因为t<10,所以执行else语句,uu[1]=7;
把函数值返回主函数,得aa[1]=7;
i=2时,i<3,调用sub(i,aa)-->sub(2,aa[])
t=uu[n--]=uu[n]=u[2]=0;n自减1,变为1;
t=t+3*uu[1]=0+3*7=21;n自加1,变为2;
因为t>10,所以执行if语句,
uu[2]=t/10=21/10=2;n自加1,变为3;
uu[3]=t%10=21%10=1.
把函数值返回主函数,得aa[2]=2,aa[3]=1。
输出a[1],a[2],a[3]得7 2 1.
展开全部
int;这里是错的。scanf那里也必须要和后边的输入数据保持一致,就是scanf("%d,%d,%d")
你的程序也不可能输出2721,除非把for (i=1;i<=n;i++)printf(“%d”,aa[i]);改成for (i=0;i<=n;i++)printf(“%d”,aa[i]);题目其实很好分析的,最后结果aa[0]=2,aa[1]=7,aa[2]=2,aa[3]=1你自己按照程序步骤分析一下吧。
你的程序也不可能输出2721,除非把for (i=1;i<=n;i++)printf(“%d”,aa[i]);改成for (i=0;i<=n;i++)printf(“%d”,aa[i]);题目其实很好分析的,最后结果aa[0]=2,aa[1]=7,aa[2]=2,aa[3]=1你自己按照程序步骤分析一下吧。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询