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,求大师讲解,详细过程
展开
 我来答
草雪林
推荐于2017-11-22 · TA获得超过648个赞
知道小有建树答主
回答量:344
采纳率:100%
帮助的人:248万
展开全部
结果应该是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.
sokaku
2017-11-17 · TA获得超过4967个赞
知道大有可为答主
回答量:7465
采纳率:58%
帮助的人:1490万
展开全部
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你自己按照程序步骤分析一下吧。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
最爱语儿7
2017-11-20 · TA获得超过280个赞
知道小有建树答主
回答量:221
采纳率:53%
帮助的人:55.4万
展开全部

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
资料共享baby
2012-09-20
知道答主
回答量:11
采纳率:0%
帮助的人:1.7万
展开全部
回答问题得积分
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
最爱灬彡娴
2012-09-20
知道答主
回答量:13
采纳率:0%
帮助的人:6.9万
展开全部
我帮你问下我老师,高手
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式