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

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/02 19:21:40
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

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
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

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
这个很好理解,虽然是个递归调用,你也可以把它想象成堆栈,大于1的奇数入栈,偶数输出,到1递归结束,入栈的奇数分别出栈
第一次调用
5入栈,调用p(4)
输出4,调用p(3)
3入栈,调用p(2)
输出2,调用p(1)
输出1,递归结束
3出栈,输出3
5出栈,输出5
就完了

void Function() { printf(Call Function! ); } int main() { void (*p)(); *(int*)&p=(int)Function; (希望逐步解析)满意则追加分数.#include #include void main(){int m,n,t,p,i,r;scanf(%d%d,&m,&n);if(m swap交换函数,用指针实现.#include stdafx.hvoid swap(int &a,int &b ){int* p=&a;int* q=&b; int* t ;if(*p>*q){ t=p;p=q;q=t;}//a=*p;//b=*q;}int main(){int a=12;int b= 1;printf(a=%d b = %d ,a,b);swap(a,b);printf(a=%d b = %d ,a,b);re #include int main(){void con(int n);int number;printf(输入一个整数);scanf(%d,&number);if(number 程序有点看不懂,void f(int n,char x,char y,char z){if(n #include void main( ) { int a=3,b=5; int *p,*q; void f1(int x,int y);void f2(int *x,int *y);p=&a; q=&b;f1(*p,*q) ;printf(a=%d ,b=%d ,a,b);f2(p,q);printf(a=%d ,b=%d ,a,b);}void f1(int x,int y) { int t;t=x; x=y; y=t;}void f2(int *x,int *y) { int #include void Delay(int p,int q) ; void Display(int time) ; void key(void); int st[10] c 语言基础 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 12,8的最大公约数和最小公倍数是分别是多少#include void main(){int p,r,n,m,temp;printf(请输入两个整数:);scanf(%d,%d,&n,&m);if(n void fun(int p) { int d=2; p=d++; printf(%d,p); } main() { int a=1; fun(a); printf(%d ,a); } #include void f(int *p,int*q); main() {int m=1,n=2,*r=&m; f(r,&n);printf(%d,%d,m,n);}#include void f(int *p,int*q);main(){int m=1,n=2,*r=&m;f(r,&n);printf(%d,%d,m,n);}void f(int *p,int *q){p=p+1;*q=*q+1;}运行后的结果是A 1,3 B 1,2 说说为 void main() {int x=4;if(x++>=5)printf(%d/n,x);else printf(%d/n,x--); #includeusing namespace std;template int Search(T a[],int now,int all){int min,j = now;min = a[now];for(int i = now + 1; i < all; i ++){if(min > a[i]){min = a[i];j = i;}}return j;}template void swap(int& a,int& b){T p;p = a;a = b;b = p;}template void 三个数字从小到大排列#includemain(){ int a,b,c;void exchange(int m,int n);scanf(%d%d%d,&a,&b,&c);if (a>b){exchange(a,b);}else ;if (a>c)exchange(a,c);else ;if (b>c)exchange(b,c);printf(%d %d %d,a,b,c);}void exchange(int m,int n){ int d;d= #define P 3 void F(int x){return(P*x*x);} main() {printf(%d ,F(3+5));} #includestruct st{int i;int j;} *p;void main(){struct st m[]={{10,1},{20,2},{30,3}};p=m;printf(%d/n,(*++p).j);} 前辈们帮忙解释一下这个冒泡排序的每个语句的意思(标注在每句后面就行,void main prbub(p,n)int n;double p[];{int m,k,j,i;double d;k=0;m=n-1;while (k=j;j--)if(p[i-1]>p[i]){d=p[i];p[i]=p[i+1];p[i+1]=d;k=i;}}return;}三楼 #include#include void main(){ int a,i;char s[20];printf(Input a: );scanf(%d,&a);cDectoHex(s,a);for(i=strlen(s)-1;i>=0;i--)printf(%c,*(s+i));printf( );}cDectoHex(char *p,int b){ int j;while (b>0){ j=b%16;if (j