500分悬赏--大小写全排列C语言代码

来源:百度知道 编辑:UC知道 时间:2024/05/22 01:44:45
本人破解了一个无线网密码:083FBF3ADED

可能是大小写区分的问题,所以不能连接上,现在需要穷举每个字母位的大写和小写的全部可能,人工排列怕出错,所以想用编程输出排列结果。

本人的思路是:数字不区分大小写,所以可以先忽略数字,把字母拿出来,那就是FBFDEDA,每个字母都有大写和小写两种情况,所以总共应该有2的7次方(128)个密码。

假设小写为0,大写为1,那么每个位置要么是0,要么是1,于是就变成对应位置上的0和1的排列。设对应的位为的变量分别为a,b,c,d,e,f,g.

那么可以有类似的代码:

main

{

int a,b,c,d,e,f,g,

a=b=c=d=e=f=g=0,

for(a>=0,a<2,a++)

{for(b>=0,b<2,b++)

{for(c>=0,c<2,c++)

...

g+=1

f+=1

e+=1

...

prinf(%c,0 & 8 &3 & a & b & c & 3 & d & e & f & g)

}

}

}

}

以上是本人的一个思路,就是多层嵌套循环,如果每一位是0就表示小写,是一就是大写。

本人很久没有碰过C语言了,所以很多地方语法可能不对。希望C语言高手给写一个严格符合C语言的代码出来,可以根据自己的算法写,每行后面最好有注释说明,输出文本文件最好。

把运行结果也发给我,谢谢。
本人想给500分,可是系统每次最大设置是100,我可以随便再发几个问题给你冲剩余的分数,所以不要担心没有分,本人分多的是.

诸位仁兄不要再让我翻书啊,翻书我是肯定能写出来的,也就不用麻烦各位了

程序:
#include <stdio.h>

main()
{
int n, i, j;
char code[]="083FBF3ADED";
char cseq[] = {3,4,5,7,8,9,10};
char cBig[] = "FBFADED";
char cSmall[] = "fbfaded";

for(i=0;i<(1<<7);i++)
{
for(j=0;j<7;j++)
{
if(i&(1<<j))
{
code[cseq[j]] = cBig[j];
}
else
{
code[cseq[j]] = cSmall[j];
}
}
printf("%3d: %s\n", i, code);
}
}

结果:
0: 083fbf3aded
1: 083Fbf3aded
2: 083fBf3aded
3: 083FBf3aded
4: 083fbF3aded
5: 083FbF3aded
6: 083fBF3aded
7: 083FBF3aded
8: 083fbf3Aded
9: 083Fbf3Aded
10: 083fBf3Aded
11: 083FBf3Aded
12: 083fbF3Aded
13: 083FbF3Aded
14: 083fBF3Aded
15: 083FBF3Aded
16: 083fbf3aDed
17: 083Fbf3aDed
18: 083fBf3aDed
19