void p(int n) { if (n>1 &&n%2==1) p(n-1); printf(“%2d”,n); i
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/11/08 18:47:30
void p(int n) { if (n>1 &&n%2==1) p(n-1); printf(“%2d”,n); if (n>1 &&n%2==0) p(n-1); }
用p(5)调用的结果是:4 2 1 3 5
4 2 1 可以理解
但是 3 5
用p(5)调用的结果是:4 2 1 3 5
4 2 1 可以理解
但是 3 5
这个很好理解,虽然是个递归调用,你也可以把它想象成堆栈,大于1的奇数入栈,偶数输出,到1递归结束,入栈的奇数分别出栈
第一次调用
5入栈,调用p(4)
输出4,调用p(3)
3入栈,调用p(2)
输出2,调用p(1)
输出1,递归结束
3出栈,输出3
5出栈,输出5
就完了
第一次调用
5入栈,调用p(4)
输出4,调用p(3)
3入栈,调用p(2)
输出2,调用p(1)
输出1,递归结束
3出栈,输出3
5出栈,输出5
就完了
void p(int n) { if (n>1 &&n%2==1) p(n-1); printf(“%2d”,n); i
#include void main() { int n=1; printf("%d,%d,%d",n,++n,n--)
#include"stdio.h" void main() { int n=1; printf("%d,%d,%d\n"
{ int a[]={1,2,3,4,5,6}; int*p; p=a; printf("%d\n",*p); prin
Int a=1; Int *p; p=&a; printf(“%d\n”,*p); 和Int a=1; Int*p; *
#include void main(){int n,i; scanf("%d",&n);i=n&7; printf("
#include void main() { int i=3; printf("i++=%d\n,++i=%d\n",
void main() {int x=4;if(x++>=5)printf("%d/n",x);else printf(
#include void main() { int k=-1; printf("%d,%u\n",k,k); }
#include void f(int *p,int*q); main() {int m=1,n=2,*r=&m; f(
#include void main() { int i=10; printf("%d,%d,%d\n",++i,i,i
main(){int m=7,n=5,i=1;do{if(i%m==0);if(i%n==0){printf("%d\n