//經(jīng)測(cè)試,代碼運(yùn)行OK,僅修改1處
創(chuàng)新互聯(lián)建站專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站設(shè)計(jì)制作、網(wǎng)站設(shè)計(jì)、向陽(yáng)網(wǎng)絡(luò)推廣、微信小程序開發(fā)、向陽(yáng)網(wǎng)絡(luò)營(yíng)銷、向陽(yáng)企業(yè)策劃、向陽(yáng)品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)建站為所有大學(xué)生創(chuàng)業(yè)者提供向陽(yáng)建站搭建服務(wù),24小時(shí)服務(wù)熱線:028-86922220,官方網(wǎng)址:www.cdcxhl.com
#include?stdio.h
int?a[10]={1,2,3,4,5,6,7};?//全局?jǐn)?shù)組
rev?(int?*m,?int?n)??//遞歸函數(shù),功能是逆轉(zhuǎn)整型數(shù)組
{
int?t;
if(n1)?//如果n大于1則執(zhí)行操作
{?
t=*m;??//t是中間變量
*m=*(m+n-1);?//當(dāng)前指針?biāo)赶虻闹档扔谧詈?個(gè)值
*(m+n-1)=t;??
rev(m+1,n-2);?
//繼續(xù)遞歸調(diào)用,應(yīng)為已交換,則指針后移一位,長(zhǎng)度減2
}
}
main()
{
int?i;
rev(a,7);
for(i=0;i7;i++)???//根據(jù)題意,這里應(yīng)該是7,是10的話會(huì)有3個(gè)0
printf("%d",a[i]);
printf("\n");
}
左移符號(hào),就是把相關(guān)值的二進(jìn)制位向左移動(dòng),結(jié)尾補(bǔ)0,比如52就是把5的二進(jìn)制00000101向左移動(dòng)2位,結(jié)果為00010100
首先你得代碼里有語(yǔ)法錯(cuò)誤
1.if語(yǔ)句里面的等值判斷應(yīng)使用“==”不是“=”
2.main函數(shù)里的打印語(yǔ)句printf("%c",c);多余,此處字符c未定義!
正確代碼如下:
void rev(){
char c;
c=getchar();
if(c=='$')
{
printf("%c",c);
}
else
{
rev();
}
}
void main()
{
rev();
}
過程:輸入 AB$CDE然后回車
1.main函數(shù)調(diào)用rev()
2.rev()聲明字符c并由getchar()賦值為A
3.if判斷不成立,進(jìn)入else()
4.else()調(diào)用rev()
5.rev()聲明字符c并由getchar()賦值為B
6.if判斷不成立,進(jìn)入else()
7.else()調(diào)用rev()
8.rev()聲明字符c并由getchar()賦值為$
9.if判斷成立,執(zhí)行打印,打印出當(dāng)前c值$
10.然后返回到第7步,執(zhí)行else()后面的打印語(yǔ)句,打印出當(dāng)時(shí)c值B
11.再返回到第4步,執(zhí)行else()后打印語(yǔ)句,打印出當(dāng)時(shí)值A(chǔ)
結(jié)果為:$BA