C语言 递归函数问题假设m0=1234调用完函数m=1为什么会执行21行的语句。

Python016

C语言 递归函数问题假设m0=1234调用完函数m=1为什么会执行21行的语句。,第1张

假设m0=1234

那么第一次,squence(1234)等价于

squence(123)

printf("%4d",m%10)

/*

输出4

*/

第二次,squence(123)等价于

squence(12)

printf("%4d",m%10)

/*

输出3*/

第二次,squence(12)等价于

squence(1)

printf("%4d",m%10)

/*

输出2*/

第二次,squence(1)等价于

printf("%4d",m)

/*

输出1*/

即以如下顺序输出

printf("%4d",m)

/*

输出1*/

printf("%4d",m%10)

/*

输出2*/

printf("%4d",m%10)

/*

输出3*/

printf("%4d",m%10)

/*

输出4*/

位右移SFTR与位左移SFTL指令编程方式如下:

SFTL M0 M20 K16 K4

*M0:源位元件起始地址,只能是位元件(X,Y,M,S)

*M20:目标位元件起始地址,只能是位元件(Y,M,S)

*K16:目标位元件个数,只能是数值

*K4:移动的个数,只能是数值

你给的指令是:SFTL Y7 Y0 K8 K1 --K8为目标元件个数,这里指从Y0-Y7,K1表示一次移动1位

你这里,Y7的值,要传给Y0,每次执行指令,Y7自己本身也会被覆盖,你可以试下把Y7改为别的地址,比如M1

#include <stdio.h>

void main()

{

int y1,m1,d1,y0,m0,d0,y,m,d

printf("请输入当前日期\n")

printf("y1=")

scanf("%d",&y1)

printf("m1=")

scanf("%d",&m1)

printf("d1=")

scanf("%d",&d1)

printf("请输入学生的生日\n")

printf("y0=")

scanf("%d",&y0)

printf("m0=")

scanf("%d",&m0)

printf("d0=")

scanf("%d",&d0)

y=y1-y0

m=m1-m0

d=d1-d0

printf("该学生的年龄为%d %d %d",y,m,d)

}

已经成功运行 祝你学业有成