丫是新手吧,这段代码错不少呀
我们提供的服务有:成都网站设计、成都网站制作、微信公众号开发、网站优化、网站认证、印江ssl等。为上千企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的印江网站制作公司
这贴个给你改好的
#include stdio.h
#include stdlib.h
void ex(int num[], int n);
int main()
{
int i;
int n;
int * num;
printf("输入个数\n");
scanf("%d", n);
num = (int*)malloc( sizeof(int) * n );
printf("\n输入数组\n");
for(i=0;in;i++)
{
scanf("%d",num[i]);
printf("数组为:%d\n",num[i]);
}
ex(num, n);
for(i=0;in;i++)
printf("现在数组为:%d\n",num[i]);
return 0;
}
void ex(int num[], int n)
{
int a=0,t;
while(an-1-a)
{
t=num[a];
num[a]=num[n-1-a];
num[n-1-a]=t;
a++;
}
}
void reverse(int *x, int n) {
int t;
int *i,*j;
j = x - 1 + n;
i = x;
while(i j) {
t = *i;
*i = *j;
*j = t;
i++;
j--; // 加上
}
}
嗯,你可能理解错了,不是最终最终执行08条,而是在任何一次的递归调用结束之后都有可能从这个地方返回。我来讲解一下吧,如果这棵树非空,而且存在左子树,那么的确会在第5行一直走到最左下的叶子,在到达最左下的叶子之后的那一次递归(此时root-lchild==null,调用heightbt(root-lchild)),root==null,那么返回0,此时递归返回一层,也就是返回到最左下的叶子处,此时LH=0,继续执行heightbt(root-rchild),那么类似刚才的过程继续检查右子树。其实递归的话没有必要去追究每一步都是怎么执行的,而是要从整体上去把握他的思想。写递归的时候也是这样,不太可能去细究每一步应该怎么实现,而要认为只要条件设置正确,那么一定会正确的实现递归。另外,楼主要注意一下编程风格。
代码文本:
#include "stdio.h"
char *contrary(char *p){
int i,t,k;
for(k=0;p[k];k++);
for(k--,i=0;ik;i++,k--)
t=p[i],p[i]=p[k],p[k]=t;
return p;
}
int main(int argc,char *argv[]){
char s[]="12334567890";
printf("The original string:\n%s\n",s);
printf("Antitone results:\n%s\n",contrary(s));
return 0;
}