C語言實(shí)現(xiàn)輸入一個(gè)字符串后打印出該字符串中字符的所有排列
本文實(shí)例講述了C語言實(shí)現(xiàn)輸入一個(gè)字符串后打印出該字符串中字符的所有排列的方法,屬于數(shù)學(xué)里的排列問題。是一個(gè)很實(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í)例對(duì)大家C程序算法設(shè)計(jì)的學(xué)習(xí)有所幫助。
相關(guān)文章
C++類中的常數(shù)據(jù)成員與靜態(tài)數(shù)據(jù)成員之間的區(qū)別
常數(shù)據(jù)成員是指在類中定義的不能修改其值的一些數(shù)據(jù)成員,類似于我們以前學(xué)過的常變量,雖然是變量,也有自己的地址,但是一經(jīng)賦初值,便不能再被修改2013-10-10C語言中關(guān)于計(jì)算字符串長(zhǎng)度的幾種方式
這篇文章主要介紹了C語言中關(guān)于計(jì)算字符串長(zhǎng)度的幾種方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08使用C語言實(shí)現(xiàn)動(dòng)態(tài)數(shù)組Vector
這篇文章主要為大家詳細(xì)介紹了使用C語言實(shí)現(xiàn)動(dòng)態(tài)數(shù)組Vector的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-01-01利用C語言實(shí)現(xiàn)一個(gè)最簡(jiǎn)單的飛機(jī)游戲
在前面彈跳小球?的基礎(chǔ)上實(shí)現(xiàn)一個(gè)簡(jiǎn)單的飛機(jī)游戲,主要包括飛機(jī)的顯示、控制移動(dòng)、顯示復(fù)雜圖案、發(fā)射激光、打靶練習(xí)等功能,感興趣的可以嘗試一下2022-10-10C語言練習(xí)題:求1到10的階乘之和簡(jiǎn)單實(shí)例
下面小編就為大家?guī)硪黄狢語言練習(xí)題:求1到10的階乘之和簡(jiǎn)單實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-05-05C++應(yīng)用Eigen庫對(duì)應(yīng)實(shí)現(xiàn)matlab中部分函數(shù)問題
這篇文章主要介紹了C++應(yīng)用Eigen庫對(duì)應(yīng)實(shí)現(xiàn)matlab中部分函數(shù)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-12-12