C语言递归法逆向字符输出 c语言 用递归反序输出字符
C\u8bed\u8a00 \u9012\u5f52\u5012\u5e8f\u8f93\u51fa\u5b57\u7b26\u4e32#includevoid f(){char ch;if((ch = getchar())!='\n')f();if(ch!='\n') printf("%c", ch); //\u8fd9\u4e2a\u8f93\u51fa\u8bed\u53e5\u662f\u5199\u5728\u4e86\u9012\u5f52\u8c03\u7528\u4e4b\u540e\uff0c\u4f1a\u88ab\u538b\u6808\uff0c\u5148\u538b\u6808\u7684\u540e\u8f93\u51fa\uff0c\u6240\u4ee5\u53ef\u4ee5\u5b9e\u73b0\u9006\u5e8f\u8f93\u51fa\uff0c\u5982\u679c\u628a\u8fd9\u4e2a\u8bed\u53e5\u79fb\u52a8\u5230f()\uff1b\u5c31\u4e0d\u4f1a\u538b\u6808\u4e86}void main(){f();printf("\n");
\u628a \u201cprintf("%c",&a[c]);\u201d\u6539\u6210\u201cprintf("%c",a[c]);\u201d
\u6ce8\u610f&\u7684\u533a\u522b\u3002
#include <stdio.h>
#include <string.h>
#define STR_LEN 1024
void InversePrint(char *str)
{
if (*str != '\0')
{
InversePrint(str + 1);
printf("%c", *str);
}
}
int main(void)
{
char string[STR_LEN] = {0};
printf("Please input a string: \n");
scanf("%s", string);
InversePrint(string);
printf("\n");
return 0;
}
运行例子:
Please input a string:
abcdefghijklmnopqrstuvwxyz
zyxwvutsrqponmlkjihgfedcba
Press any key to continue
楼上的程序简化
//函数 reverse 把 字符串 c中的字符 倒置
void reverse(char *c,int k){
char tmp;
if(k>1){
reverse(c+1,k-2);
tmp=c[0];
c[0]=c[k-1];
c[k-1]=tmp;
}
}
int main()
{
char *c="abcdefg";
int k=strlen(c);
reverse(c,k);
puts(c);
getch();
}
#include <stdio.h>
void InversePrint(char *str)
{
if (*str)
InversePrint(str + 1);
printf("%c", *str);
}
void main(void)
{
InversePrint("djsfko");
}
给你
#include<stdio.h>
void inverse(char *s,char *t){
char k;
if(*s != '\0'){
k=*s; *s=*t; *t=k;
s++; t--;
inverse(s,t);
}
}
void main(){
char str[80],*p;
gets(str);
if((strlen(str)&1)==0){
p=str+strlen(str)/2;
inverse(p,p-1);
}
else{
p=str+strlen(str)/2+1;
inverse(p,p-2);
}
puts(str);
}
void Reverse(char s[],int n)
{
if(s[n])
Reverse(s,n+1);
printf("%c ",s[n]);
}
//---------------------------------------------------------------------------
#include <stdio.h>
void reverse(void)
{
char c;
if ((c=getchar())!='\n') {
reverse();
putchar(c);
}
}
int main(void)
{
printf("Please input a string: \n");
reverse();
return 0;
}
//---------------------------------------------------------------------------
绛旓細1锛庡垱寤轰竴涓柊鐨勯」鐩拰銆俢鏂囦欢锛岃緭鍏ュご鍜屼富瑕佸姛鑳姐2锛庡0鏄庤皟鐢ㄧ殑鍑芥暟杩斿洖骞跺畾涔夊彉閲忕被鍨嬨3锛庤緭鍏ヤ竴涓暣鏁帮紝濡備笅鍥炬墍绀恒4锛庝娇鐢╥f璇彞鏉ョ‘瀹氭暣鏁版槸鍚︿负璐熸暟锛屾垨鑰呬娇鐢╬utchar鏉ユ墦鍗拌礋鍙枫5锛庤皟鐢ㄤ竴涓嚱鏁帮紝濡備笅鍥炬墍绀恒6锛庡畾涔夊嚱鏁扮殑杩斿洖绫诲瀷鍜屽弬鏁扮被鍨嬨7锛庝娇鐢╥f璇彞纭畾鏄惁鍙墿涓嬩竴涓瓟妗堛傚鏋...
绛旓細include<conio.h> include<stdio.h> void reverse(int i){ char c;if(i>0){c=getch();reverse(i-1);printf(" %c ",c);} } main(){ reverse(5);}
绛旓細include "stdio.h"main(){ int i=5;void palin(int n);printf("\40:");palin(i);printf("\n");} void palin(n)int n;{ char next;if(n<=1){ next=getchar();printf("\n\0:");putchar(next);} else { next=getchar();palin(n-1);putchar(next);} } ...
绛旓細include<stdio.h>void f(){char ch;if((ch = getchar())!='\n')f();if(ch!='\n') printf("%c", ch); //杩欎釜杈撳嚭璇彞鏄啓鍦ㄤ簡閫掑綊璋冪敤涔嬪悗锛屼細琚帇鏍堬紝鍏堝帇鏍堢殑鍚庤緭鍑猴紝鎵浠ュ彲浠ュ疄鐜伴嗗簭杈撳嚭锛屽鏋滄妸杩欎釜璇彞绉诲姩鍒癴()锛涘氨涓嶄細鍘嬫爤浜唥void main(){f();printf("\n");
绛旓細include <stdio.h>void f(int n){ char ch; if(n>0){ ch=getchar(); f(n-1); } else return; printf("%c",ch);}int main(void){ f(5); printf("\n"); return 0;}
绛旓細鍫嗘爤娉曪紝閫掑綊鍑芥暟璋冪敤娉曪紝鏂熬娉曪紝閫嗗簭璇瀛楃椤哄簭鎻掑叆鐨勬柟娉銆侀绔『搴忓熬绔嗗簭瀛楃浜ゆ崲鏂规硶娉
绛旓細杩欎釜绠鍗 include<stdio.h> include<string.h> void fun(char *str){ int i=strlen(str)-1;while(i>=0){ printf("%c \n",str[i]);i--;} } 鍏跺疄鎴戞湁涓簲鐢ㄦ寚閽堝仛鎴閫掑綊鍑芥暟鐨勬兂娉曚粖澶╂椂闂存湁鐐规櫄涓嶅仛浜
绛旓細#include<stdio.h> 鈶爒oid reverse(){ char ch; //瀹氫箟chif((ch=getchar())!='\n') //浠庨敭鐩樻帴鍙椾竴涓瓧绗︼紝濡傛灉涓嶆槸鎹㈣绗︽潯浠朵负鐪燂紝鎵ц鈶★紝鍚﹀垯鎵ц鈶 鈶everse(); //杩斿洖鈶閫掑綊鎺ユ敹瀛楃 鈶f(ch!='\n') //鍒ゆ柇ch鏄惁涓烘崲琛岀锛屾潯浠朵负鐪熷埌鈶f墽琛 鈶utchar(ch); //杈撳嚭瀛楃 r...
绛旓細鍘绘墽琛屼笂娆℃湭鎵ц鐨勮鍙f (c != '\n') putchar(c);杩欐椂灏杈撳嚭浜嗗掓暟绗竴 涓潪绌瀛楃锛屾鍚庡啀杩斿洖鍊掓暟绗笁娆¤皟鐢ㄧ殑鏂偣杈 鍑鍊掓暟绗簩涓潪绌哄瓧绗︼紝浠ユ绫绘帹鈥︹﹀疄鐜板掑簭杈 鍑恒*/ putchar(c);}void main(){ reverse(); //绋嬪簭寮濮嬶紝绗竴娆¤皟鐢ㄨ嚜瀹氫箟鍑芥暟...
绛旓細閭e氨浣跨敤鎸囬拡浜唅nt main(void ){ char* str="Hello china";char* p = str; char* end;while(*p!='\0'){ end=p;p++锛泒//姝ゅ惊鐜槸涓轰簡鎵惧埌瀛楃涓鐨勭粨灏惧瓧绗 while(end!=str) {printf("%c",*end); end--锛泒 //浠庢渶鍚庝竴涓瓧绗﹀紑濮閫嗗悜杈撳嚭锛岀洿鑷崇涓涓瓧绗 printf("%c\n",*end...