//经测试,代码运行OK,仅修改1处
创新互联建站专注为客户提供全方位的互联网综合服务,包含不限于网站设计制作、网站设计、向阳网络推广、微信小程序开发、向阳网络营销、向阳企业策划、向阳品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联建站为所有大学生创业者提供向阳建站搭建服务,24小时服务热线:028-86922220,官方网址:www.cdcxhl.com
#include stdio.h
int a[10]={1,2,3,4,5,6,7}; //全局数组
rev (int *m, int n) //递归函数,功能是逆转整型数组
{
int t;
if(n1) //如果n大于1则执行操作
{
t=*m; //t是中间变量
*m=*(m+n-1); //当前指针所指向的值等于最后1个值
*(m+n-1)=t;
rev(m+1,n-2);
//继续递归调用,应为已交换,则指针后移一位,长度减2
}
}
main()
{
int i;
rev(a,7);
for(i=0;i7;i++) //根据题意,这里应该是7,是10的话会有3个0
printf("%d",a[i]);
printf("\n");
}
左移符号,就是把相关值的二进制位向左移动,结尾补0,比如52就是把5的二进制00000101向左移动2位,结果为00010100
首先你得代码里有语法错误
1.if语句里面的等值判断应使用“==”不是“=”
2.main函数里的打印语句printf("%c",c);多余,此处字符c未定义!
正确代码如下:
void rev(){
char c;
c=getchar();
if(c=='$')
{
printf("%c",c);
}
else
{
rev();
}
}
void main()
{
rev();
}
过程:输入 AB$CDE然后回车
1.main函数调用rev()
2.rev()声明字符c并由getchar()赋值为A
3.if判断不成立,进入else()
4.else()调用rev()
5.rev()声明字符c并由getchar()赋值为B
6.if判断不成立,进入else()
7.else()调用rev()
8.rev()声明字符c并由getchar()赋值为$
9.if判断成立,执行打印,打印出当前c值$
10.然后返回到第7步,执行else()后面的打印语句,打印出当时c值B
11.再返回到第4步,执行else()后打印语句,打印出当时值A
结果为:$BA