C語言實(shí)現(xiàn)輸入一個字符串后打印出該字符串中字符的所有排列
本文實(shí)例講述了C語言實(shí)現(xiàn)輸入一個字符串后打印出該字符串中字符的所有排列的方法,屬于數(shù)學(xué)里的排列問題。是一個很實(shí)用的算法技巧。分享給大家供大家參考。具體實(shí)現(xiàn)方法如下:
例如輸入字符串a(chǎn)bc,則輸出由字符a、b、c所能排列出來的所有字符串a(chǎn)bc、acb、bac、bca、cab和cba。
C語言實(shí)現(xiàn)代碼如下:
/* * Copyright (c) 2011 alexingcool. All Rights Reserved. */ #include <iostream> #include <algorithm> using namespace std; char array[] = {'a', 'b', 'c'}; const int size = sizeof array / sizeof *array; void Perm(char *array, int pos, int last) { if (pos == last) { copy(array, array + size, ostream_iterator<char>(cout, "")); cout << endl; } else { for(int i = pos; i <= last; i++) { swap(array[i], array[pos]); Perm(array, pos + 1, last); swap(array[i], array[pos]); } } } void main() { Perm(array, 0, 2); }
希望本文所述實(shí)例對大家C程序算法設(shè)計(jì)的學(xué)習(xí)有所幫助。
相關(guān)文章
C++類中的常數(shù)據(jù)成員與靜態(tài)數(shù)據(jù)成員之間的區(qū)別
常數(shù)據(jù)成員是指在類中定義的不能修改其值的一些數(shù)據(jù)成員,類似于我們以前學(xué)過的常變量,雖然是變量,也有自己的地址,但是一經(jīng)賦初值,便不能再被修改2013-10-10使用C語言實(shí)現(xiàn)動態(tài)數(shù)組Vector
這篇文章主要為大家詳細(xì)介紹了使用C語言實(shí)現(xiàn)動態(tài)數(shù)組Vector的相關(guān)知識,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-01-01利用C語言實(shí)現(xiàn)一個最簡單的飛機(jī)游戲
在前面彈跳小球?的基礎(chǔ)上實(shí)現(xiàn)一個簡單的飛機(jī)游戲,主要包括飛機(jī)的顯示、控制移動、顯示復(fù)雜圖案、發(fā)射激光、打靶練習(xí)等功能,感興趣的可以嘗試一下2022-10-10C語言練習(xí)題:求1到10的階乘之和簡單實(shí)例
下面小編就為大家?guī)硪黄狢語言練習(xí)題:求1到10的階乘之和簡單實(shí)例。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-05-05C++應(yīng)用Eigen庫對應(yīng)實(shí)現(xiàn)matlab中部分函數(shù)問題
這篇文章主要介紹了C++應(yīng)用Eigen庫對應(yīng)實(shí)現(xiàn)matlab中部分函數(shù)問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-12-12