作者purincess (purincess)
看板b96902HW
标题Re: ffd
时间Fri Apr 26 20:22:54 2013
都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)
1F:推 ck574b027:看那精美的system("pause");你觉得有可能会用c++11吗XD 05/26 06:22
2F:→ purincess:对不起我错惹QQ 06/09 10:37