早教吧 育儿知识 作业答案 考试题库 百科 知识分享

C程序,请大家帮我看看for(--in;in>=0;in--)中的--in是什么意思,不是自减吗?main(){charbd[16]={'0','1','2','3','4','5','6','7','8','9','10','A','B','C','D','E','F'};intcn[64],nd,b,in=0;longintntc;printf("\nInputanintegerwhich

题目详情
C程序,请大家帮我看看for (--in;in>=0;in--)中的--in是什么意思,不是自减吗?
main()
{
char bd[16]={'0','1','2','3','4','5','6','7','8','9','10','A','B','C','D','E','F'};
int cn[64],nd,b,in=0;
long int ntc;
printf("\n Input an integer which is transformed:");
scanf("%ld",&ntc);
printf("\n Input a changing to system number:");
scanf("%d",&b);
do
{
cn[in]=ntc%b;in++;ntc=ntc/b;
} while(ntc);
printf("Transform to:\n");
for(--in;in>=0;in--)
{
nd=cn[in];
printf("%c",bd[nd]);
}
printf("\n");
}
▼优质解答
答案和解析
for(表达式1;表达式2;表达式3)
该语句执行过程如下:
  ①先对表达式1赋初值;
  ②判别表达式2是否满足给定条件,若其值为真,满足循环条件,则执行循环体内语句,然后执行表达式3,进入第二次循环,再判别表达式2……;否则判断表达式2的值为假,不满足条件,就终止for循环,执行循环体外语句.
又因为do……while语句是先执行 do语句再判断while条件的,所以do语句中的变量 in 就多进行了一次 +1 操作,所以在接下来的for循环中,要先对in变量进行 -1 操作,代码中for(--in;in>=0;in--) 等同于 for(in-1;in>=0;in--)
do
{
cn[in]=ntc%b;in++;ntc=ntc/b;
} while(ntc);
printf("Transform to:\n");
for(--in;in>=0;in--)
{
nd=cn[in];
printf("%c",bd[nd]);
}