Re: ffd
都2013年了還在寫這種C程式 寫個C++11才潮好嘛
#include <iostream>
#include <vector>
#include <algorithm>
using std::cout;
using std::cin;
using std::endl;
using std::vector;
using std::generate;
using std::for_each;
int main(){
auto o = [](char a, char b, char c) -> void { cout << a << b << c << " ";};
char t;
cout << "請輸入一個英文字母:";
cin >> t; // assume input is valid
vector<char> cs(t - 'A' + 1);
generate(cs.rbegin(), cs.rend(), [&t]() -> char { return t--; });
for_each(cs.begin(), cs.end(), [&o](char c) -> void { o(c, c, c); });
for_each(cs.begin(), cs.end(), [&o, &cs](char c) -> void {
for_each(cs.begin(), cs.end(), [&o, &cs, &c](char d) -> void{
if(c != d)
o(c, c, d);
});
});
cout << endl;
}
--
tested with g++ 4.7.1 with --std==c++11
※ 引述《eden0315 (貢丸^^~)》之銘言:
: 請問一個程式問題:
: 我輸入C 會跑出AAA BBB CCC AAB AAC BBA BBC CCA CCB
: 我改了很久都改不出來這樣的排列組合
: #include<stdio.h>
: #include<stdlib.h>//AAA BBB CCC AAB AAC BBA BBC CCA CCB ....
: int main(){
: char i,j,k;
: char op;
: char a,b,c,d;
: printf("請輸入一個英文字母:");
: scanf("%c",&op);
: for(i='A';i<=op;i++)
: {
: for(j='A';j<=op;j++)
: printf("%c",i);
: printf(" ");
: }
: for(a='A';a<=op;a++)
: {
: for(b=op;b>'A';b--)//印次數
: {
: for(c=op;c>='A';c--)//印出幾個字
: if(c>'A')
: printf("%c",a);
: if(c='A'){
: for(d='A';d<=op;d++)
: if(d!=a)
: printf("%c",d);
: }
: printf(" ");
: }
: }
: system("pause");
: return 0;
: }請問一下該怎麼改 這是我寫到一半的
--
我是b94 = ="
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.30.46
※ 編輯: purincess 來自: 140.112.30.46 (04/26 20:54)
推
05/26 06:22, , 1F
05/26 06:22, 1F
→
06/09 10:37, , 2F
06/09 10:37, 2F
討論串 (同標題文章)