C語言: 用遞迴實現對字串的逆置
#include <stdio.h> #include <windows.h> /* 用遞迴實現對字串的逆置 */ void Reverse(char* string) { int len = strlen(string); if (strlen(string) <= 1) { //結束壓棧條件 return; } char tmp = *string; *string = *(string + len - 1); //首字元 = 尾字元 *(string + len - 1) = '\0'; //尾字元 = '\0' Reverse(string + 1); //壓棧, 繼續交換 *(string + len - 1) = tmp; //出棧,將原來'\0'恢復到原來的字元 } int main() { char str[10] = "123456"; Reverse(str); printf("%s\n", str); system("pause"); return 0; }
相關推薦
C語言: 用遞迴實現對字串的逆置
#include <stdio.h> #include <windows.h> /* 用遞迴實現對字串的逆置 */ void Reverse(char* string) { int len = strlen(string); if (strlen(string)
C語言用遞迴實現n^k(不考慮k<0的情況)
#include<stdio.h> #include<stdlib.h> int n_power_k(int n,int k){ if (k == 0) { return 1; } return n*n_power_k(n,k-1)
C語言 用遞迴法將一個整數n轉換成字串
#include<stdio.h> int main(void) { int n; int enter_n(); void print_n(int n); n=enter_n(); print_n(n); return 0; } int enter_n()
C語言簡單遞迴實現字串逆序輸出
題目內容的 “注意” 已經側面規定了要用遞迴來實現: 輸入是一個可能含有空格的串說明要用gets來讀入字串,如果利用scanf的話是無法讀入一段含有空格的串。 下面先上一般方法: #include "stdio.h" #include "string.h" char *
C語言 用遞迴法求n的階乘
#include<stdio.h> int main() {int njc(int n); int x,n,y; scanf("%d",&n); y=njc(n); printf("%d",y); return 0; } int njc(int n
[C語言]用遞迴和非遞迴的方法在楊氏矩陣中查詢
從楊氏矩陣中查詢數字,以及調整奇數位於陣列的前半部分 //從楊氏矩陣中查詢數字 //1.從右上角開始找,如果要找的值大於當前值,向下找,否則,向左找,方向確定 //2.從左下角開始找,如果要找的值大於當前值,向右找,否則,向上找,方向確定 //---->最
hanoi塔的c語言函式遞迴實現
#include <stdio.h> void hanoi(int n,char a,char b,char c)//定義函式 {if(n==1) //如果只有一個,那麼只需要從a杆移至c杆; {printf("%c-->%c\n",a,c);}else //如果有多個 {hanoi(n-
【c語言】遞迴實現n的k次方
問題描述: 如題。 分析: 1.n的k次=n*n*n*……*n(k個n),用遞迴的思想來講,就等於2.n的k次=n*(n的(k-1)次方) 程式碼如下: #include<stdi
[c語言]用遞迴和非遞迴求第n個斐波那契數
程式碼 //1.1遞迴求第n個斐波那契數 #include<stdio.h> int fib(int n) { if(n<=2) return 1; else return fib(n-1)+fib(n-2); } int main
C語言用遞迴方法求解階乘
一般我們求解階乘用的時迭代的方法,即使用迴圈語句來實現功能,這次我們用的是遞迴的方法: long int Factral( long int N ){ if( N > 1 ){ retur
【死磕演算法·棧和佇列】僅用遞迴實現棧的逆序
題目要求:實現棧的逆序,但只能用遞迴函式和這個棧本身操作來實現,不能自己申請額外的資料結構。 題目思路: 實現兩個遞迴函式: getBottomItem():移除棧底元素並返回該元素 reverse():實現整個棧逆序 如何寫遞迴函式? 遞迴函式在函式體中
C語言:用遞迴實現將輸入的整數按逆序輸出。如輸入12345,則輸出54321。
這個程式是我對建構函式有個更深的認識。 首先建構函式要先從頭至尾走一邊才會輸出,無論輸出語句加的位置(迴圈內,條件語句內...除外)。 然後建構函式遞迴可以把問題簡單化,本題如果按常規思路,應該是做個迴圈,把各個數首尾交換。但是用呼叫使得其可以一次輸出一位數,而並不是輸出一個
C語言:遞迴和非遞迴分別實現求n的階乘
#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #include "stdlib.h" #include<stdio.h> //遞迴方法實現N的階乘 int fac1(int n
C語言(遞迴遍歷資料夾)實現檔案批量複製
大專案時時常需要抽出屬於自己編寫的那部分程式碼,從SVN下載後,往往需要一個個的進入資料夾下拿取相應的檔案。這樣很浪費時間,雖然使用bat編寫確實更快,但是我覺得使用C語言可能在檔案過多時會快一點,也是為了 練習練習。如果那裡存在問題,或是不足,歡迎指出。程式碼如下: #includ
用遞迴實現判斷一個字串是否是迴文的方法
迴文:把相同的字串顛倒過來,產生首尾迴環,叫做迴文。 例如:1234321、1221、1。 注意:單個字元也是迴文。 下面給出兩個版本的判斷字串是否是迴文的方法。 方法一:遞迴實現判斷一個字串是
c語言-----用迴圈語句實現金字塔,左對齊
c語言中的迴圈語句有三種,while迴圈,do,while迴圈,和for迴圈. 1. while語句 2.for語句 3.do ...while語句 例項:
C語言:遞迴和非遞迴實現二分查詢
二分查詢是將有序數列不斷地縮小,直到找到改元素或折半區域的首元素位置高於尾元素位置為止。//遞迴寫二分查詢 int BinarySearchD(int arr[], int x, int begin,
C語言 通過遞迴 、_findfirst、_findnext函式實現 搜尋指定目錄的指定檔案
主要使用:_findfirst、_findnext函式OperateFile.c#include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h
c語言 函式遞迴的簡單應用
利用函式遞迴來時現將一個sh數的每一位拆出來然後求和,即是:例如一個shu數 1888;它的每一位sh是 1 8 8 8,而每一位的每一位的和最終是 25,而接下來jian建立用函式的
【C語言】遞迴演算法的學習
一、初識遞迴 程式呼叫自身的程式設計技巧稱為遞迴( recursion)。 一個過程或函式在其定義或說明中有直接或間接呼叫自身的一種方法,它通常把一個大型複雜的問題層層轉化為一個與原問題相似的規模較小的問題來求解,遞迴策略只需少量的程式就可描述出解題過程所需要的多次重複計算,大大地減少