需要程序,及其流程图
例如,输入孙悟空,输出孙悟空,孙空悟,悟孙空,悟空孙,空孙悟,空悟孙
涉及到内存分配、确保不产生内存泄露
需要程序,及其流程图
例如,输入孙悟空,输出孙悟空,孙空悟,悟孙空,悟空孙,空孙悟,空悟孙
回答:
#include<stdio.h>
#include<iostream>
using namespace std;
int main() {
int n;
printf("请输入字符串长度:");
scanf("%d", &n);
string a[n];
printf("请输入字符串:");
for (int i = 0; i < n; i++) {
cin >> a[i];
}
if (n == 1) {
for (int i = 0; i < n; i++) {
cout << a[i] << " ";
}
}
else if (n == 2) {
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (i != j) {
cout << a[i] << a[j] << " ";
}
}
cout << endl;
}
}
else if (n == 3) {
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
for (int k = 0; k < n; k++) {
if (i != j && j != k && i != k) {
cout << a[i] << a[j] << a[k] << " ";
}
}
}
cout << endl;
}
}
else if (n == 4) {
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
for (int k = 0; k < n; k++) {
for (int l = 0; l < n; l++) {
if (i != j && i != k && i != l && j != k && j != l && k != l) {
cout << a[i] << a[j] << a[k] << a[l] << " ";
}
}
}
}
cout << endl;
}
}
else if (n == 5) {
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
for (int k = 0; k < n; k++) {
for (int l = 0; l < n; l++) {
for (int m = 0; m < n; m++) {
if (i != j && i != k && i != l && j != k && j != l && k != l && i != m && j != m && l != m && k != m) {
cout << a[i] << a[j] << a[k] << a[l] << a[m] << " ";
}
}
}
}
}
printf("\n");
}
}
else
{
printf("输入字符长度最多为五!\n");
}
}