A. 一个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(a3!=a2&&a3!=a1)
{if(n==3) {printf("%d%d%d\n",a1,a2,a3);t=t+1;}
else
for (a4=1;a4<=n;a4++)
if(a4!=a3&&a4!=a2&&a4!=a1)
{if(n==4) {printf("%d%d%d%d\n",a1,a2,a3,a4);t=t+1;}
else
for (a5=1;a5<=n;a5++)
if(a5!=a4&&a5!=a3&&a5!=a2&&a5!=a1)
{if(n==5) {printf("%d%d%d%d%d\n",a1,a2,a3,a4,a5);t=t+1;}
else
for (a6=1;a6<=n;a6++)
if(a6!=a5&&a6!=a4&&a6!=a3&&a6!=a2&&a6!=a1)
{if(n==6) {printf("%d%d%d%d%d%d\n",a1,a2,a3,a4,a5,a6);t=t+1;}
else
for (a7=1;a7<=n;a7++)
if(a7!=a6&&a7!=a5&&a7!=a4&&a7!=a3&&a7!=a2&&a7!=a1)
{if(n==7) {printf("%d%d%d%d%d%d%d\n",a1,a2,a3,a4,a5,a6,a7);t=t+1;}
else
for (a8=1;a8<=n;a8++)
if(a8!=a7&&a8!=a6&&a8!=a5&&a8!=a4&&a8!=a3&&a8!=a2&&a8!=a1)
{if(n==8) {printf("%d%d%d%d%d%d%d%d\n",a1,a2,a3,a4,a5,a6,a7,a8);t=t+1;}
else
for (a9=1;a9<=n;a9++)
if(a9!=a8&&a9!=a7&&a9!=a6&&a9!=a5&&a9!=a4&&a9!=a3&&a9!=a2&&a9!=a1)
{if(n==9) {printf("%d%d%d%d%d%d%d%d%d\n",a1,a2,a3,a4,a5,a6,a7,a8,a9);t=t+1;}
}
}
}
}
}
}
}
}
printf("共有%d种\n",t);
getchar();getchar();
}
自己辛辛苦苦写的,用dev c运行成功
B. 用C语言编一个数字字符123,运行结果显示数字的123
其实你的程序没有问题,是你自己输入有问题,你这个输入里面没有空格,所以你在输入的时候也不能有空格,因为空格也是一个字符,你输入空格,程序会将空格字符作为有效输入而存放到变量里面的。仔细看看下面2张图片的区别。
C. C语言给1,2,3按大小排序,写详细,谢谢
#include <stdio.h>
void swap(int &a,int &b){ //两个元素交换
int t=a;
a=b;b=t;
}
void sort(int &a,int &b,int &c){ //三个数排序
if(a>b)swap(a,b);
if(a>c)swap(a,c);
if(b>c)swap(b,c);
}
int main() {
int a=1,b=2,c=3;
scanf ("%d%d%d",&a,&b,&c);
sort(a,b,c);
printf("%d %d %d",a,b,c);
return 0;
}
D. 用C语言设计程序计算,1 12 123 1234 12345
#include<stdio.h>
intmain()
{
intnumberCount=5;
intsum=0;
intcurrentNumber=0;
for(inti=0;i<numberCount;++i)
{
currentNumber=currentNumber*10+i+1;
sum+=currentNumber;
}
printf("%d ",sum);
return0;
}
E. 如何在C语言里用什么语句可以做到 如输入123 实现输出1+2+3
//这样就ok啦,欢迎交流
//这样就可以随机的输入啦
#include<stdio.h>
intmain(){
inttar;
scanf("%d",&tar);
intres_sum=0;
while(tar!=0){
res_sum+=tar%10;
tar/=10;
}
printf("%d ",res_sum);
return0;
}
F. C语言如何输出数列1,1,2,2,3,3……求算法
for( int i = 1 ; i <= n ; i++ )
{
printf("%d,%d,",i,i) ;
}
这样可以吗