c语言输出全排列

作者&投稿:郗欢 (若有异议请与网页底部的电邮联系)

全排列用C语言实现
include<stdio.h> include<string.h> char a[20];int lenth;long count=0;void main(){void move(int,int);int i,j=0;printf("input:");gets(a);lenth=strlen(a);for(i=0;i<lenth;i++)move(j,i);\/\/move a[i] to the front of a[j];printf("\\ntotal=%d\\n",count);} v...

一个C语言全排列的算法。 比如,输入3,则将123的全排列全部输出:123...
main(){ int a1,a2,a3,a4,a5,a6,a7,a8,a9,n,t=0;scanf("%d",&n);for(a1=1;a1<=n;a1++)if(n==1){printf("%d\\n",a1);t=t+1;} else for (a2=1;a2<=n;a2++)if(a2!=a1){if(n==2) {printf("%d%d\\n",a1,a2);t=t+1;} else for (a3=1;a3<=n;a3++)if(...

用C语言编程:打印由字符A、B、C、D组成的所有全排列。
include<string.h>char a[20];int lenth;long count=0;void main(){void move(int,int);int i,j=0;printf("input:");gets(a);lenth=strlen(a);for(i=0;i<lenth;i++)move(j,i);\/\/move a[i] to the front of a[j];printf("\\ntotal=%d\\n",count);} void move(int here,...

c语言中,如何输出一个数组的全排列!如a[3]={1,2,3} 要求输出1 2 3,1...
void perm(int);void print();void swap(int, int);int main()r> { int i,n;int offset;for(i = 0; i<N; i++)a[i] = i + 97;perm(0);} void perm(int offset){ int i, temp;if(offset == N-1){ print();return;} for(i = offset; i < N; i++){ swap(i, ...

c语言作业,输出四个数A,B,C,D的全排列
+'A'-1,num[3]+'A'-1); }while(next_permutation(num,num+4)); return 0;}可以借助于stl模板中的next_permutation函数,这个函数是按照字典序不停的取该序列的下一个序列,直到结束。然后输出的时候讲数字转化为你要的字母即可。例如 第一个序列是1,2,3,4,--》A,B,C,D ...

...用c语言实现1,5,6,11,14,15,16,18,19的全排列,并且要求14要在11...
{int a,b,c,d,e,f,g,h,i,count=0;int num[9],shu[9];int fun(int s[]);int max(int p,int q);for(a=0; a<9;a++)for(b=0; b<9;b++)for(c=max(a,b)+1;c<9;c++)for(d=0; d<9;d++)for(e=d+1; e<9;e++)for(f=0; f<9;f++)for(g...

用c语言实现 ABCDE按照全排列输出所有结果
void main(){ char i,j,k,m,n;for(i='A';i<='E';i++)for(j='A';j<='E';j++)for(k='A';k<='E';k++)for(m='A';m<='E';m++)for(n='A';n<='E';n++)if(i!=j&&i!=k&&i!=m&&i!=n&&j!=k&&j!=m&&j!=n&&k!=m&&k!=n&&m!=n)printf("%c %c ...

C语言编程,输入10个字符char a[10],输出这十个字符的全排列_百度...
int main(){ char a[10][20];for(int i=0;i<10;i++)scanf("%s",a[i]);for(int i=0;i<9;i++)for(int j=0;j<9-i;j++)if(strcmp(a[j],a[j+1])>0){ char t[10];strcpy(t,a[j]);strcpy(a[j],a[j+1]);strcpy(a[j+1],t);} for(int i=0;i<10;i++)...

如何用C语言编写1234的全排列
void main(){ int i=0,j=0,k=0,l=0,count=0;for(i=1;i<=4;i++){ for(j=1;j<=4;j++)if(j!=i)for(k=1;k<=4;k++)if(k!=i&&k!=j)for(l=1;l<=4;l++)if(l!=i&&l!=j&&l!=k){ count++;printf("\\n\\t第%2d个 %d %d %d %d",count,i,j,k,l);} ...

用C语言编程求1、2、3到n的全排列
include <stdio.h> int main(){ int n, nn;printf("input a number: ");scanf("%d", &n);for (int i = 1; i <= n; ++i){ nn = 1;for (int j = 1; j <= i; ++j){ nn = nn * j;} printf("%d! = %d\\n", --j, nn);} return 0;} ...

聊妍18922749991问: c语言 给出一个数怎样输出该数的全排列 -
宜阳县苏子回答: 递归法:设输入的数为n,N={1,2,...n} 不断选择数字i,把i从N中剔除,直到N为空集即可 代码如下:#include <stdio.h>#include <stdlib.h>#include <string.h> int N; bool *mark; int *output, pos = 0; void AddNumber(int i) {bool finish = true; mark[i] = ...

聊妍18922749991问: C语言题,输出全排列,写下简单代码,要让初学者看懂 -
宜阳县苏子回答: 我给你举两个简单的列子:题目:输入三个整数x,y,z,请把这三个数由小到大输出. 1.程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换,然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这...

聊妍18922749991问: 全排列用C语言实现 -
宜阳县苏子回答: 给,已经编译运行确认: #include<stdio.h> #include<string.h> char a[20]; int lenth; long count=0; void main() {void move(int,int); int i,j=0; printf("input:");gets(a); lenth=strlen(a); for(i=0;i<lenth;i++) move(j,i);//move a[i] to the front of a[j]; printf("\...

聊妍18922749991问: 用c语言实现 ABCDE按照全排列输出所有结果 -
宜阳县苏子回答: #include <stdio.h> #include <stdlib.h> void main() {char i,j,k,m,n;for(i='A';i<='E';i++)for(j='A';j<='E';j++)for(k='A';k<='E';k++)for(m='A';m<='E';m++)for(n='A';n<='E';n++)if(i!=j&&i!=k&&i!=m&&i!=n&&j!=k&&j!=m&&j!=n&&k!=m&&k!=n&&m!=n)...

聊妍18922749991问: 用c语言编写全部排列 -
宜阳县苏子回答: void chang(char str[],int m) /*定义循环左移函数(我没有用左移函数)*/{int i,j;char temp=str[0];for (i=0;i<m;i++) str[i]=str[i+1];str[i]=temp;} void pai(char str[],int m,int n) /*定义全排列函数*/ {int k;void chang(char str[],int m);if (m<n) /* 定 义 递 ...

聊妍18922749991问: C语言中《计算出n个整数的全排列种数,并输出这所有的排列》怎样写?求大神帮助!!!!! -
宜阳县苏子回答: 源程序如下:#include <stdio.h> #include <string.h> char string[9]="12345678"; int used[9]={0}; char output[9]; int length; void F(int d) {int i;for(i=0;i<=length;i++){if(!used[i]){used[i]=1;output[d]=string[i];if(d==length){for(d=0;d<length;d++)...

聊妍18922749991问: 急!!!如何用C语言编写打出1~n个数的全排. -
宜阳县苏子回答: 递归,比较简单,10个数全排如下#include<stdio.h> void swap(int k,int i,int a[]) { int t; t=a[k]; a[k]=a[i]; a[i]=t; } void pailie(int a[],int i,int n) {int k,t; if(i==n) { for(t=0;t<n;t++) printf("%3d",a[t]); printf("\n"); } elsefor(k=i;k<n;k++) { swap(i,k,a); pailie(a...

聊妍18922749991问: 一个C语言全排列的算法. 比如,输入3,则将123的全排列全部输出:123,132,213,231 -
宜阳县苏子回答: #include main() { int a1,a2,a3,a4,a5,a6,a7,a8,a9,n,t=0; scanf("%d",&n); for(a1=1;a1<=n;a1++) if(n==1){printf("%d\n",a1);t=t+1;}else for (a2=1;a2<=n;a2++)if(a2!=a1) {if(n==2) {printf("%d%d\n",a1,a2);t=t+1;} else for (a3=1;a3<=n;a3++)if(...

聊妍18922749991问: c语言作业,输出四个数A,B,C,D的全排列 -
宜阳县苏子回答: #include <iostream> #include <stdio.h> #include <algorithm> using namespace std; int main() {int num[4]={1,2,3,4};do{printf("%c,%c,%c,%c\n",num[0]+'A'-1,num[1]+'A'-1,num[2]+'A'-1,num[3]+'A'-1);}while(next_permutation(num,num+4));...

聊妍18922749991问: c语言求全排列 -
宜阳县苏子回答: 用迭代算法简单些, 就是速度慢许.算法为: 为求1 ~ n个整数的函数 permutation, * 如果n = 2, 只有两种排列方式, 即 (1, 2) (2, 1)* 迭代计算1 ~ n-1个整数的全排列* 将n插入所得到的1 ~ n-1的全排列的任意位置得到1 ~ n的全排列.


本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网