根据题意输出00000到11111的二进制01串,我根据网上的一些做法,选择了利用字符串进行模拟二进制的运算。
#include<stdio.h>
int main(){
char a[6]={'0','0','0','0','0','\0',};
int i,j;
for(i=0;i<32;i++){
printf("%s\n",a);
a[4]+=1;
for(j=4;j>=0;j--){
if(a[j]=='2'){
a[j]='0';
a[j-1]+=1;
}
}
}
return 0;
}
先定义一个长度为6的字符数组并初始化为{'0','0','0','0','0','\0',}
在第一个for循环中a[4]+=1;
用来每次进1;而第二个for循环中
//j=4,即从00000逆序开始往前判断
for(j=4;j>=0;j--){
if(a[j]=='2'){
a[j]='0';
a[j-1]+=1;
} //判断是否满2,满2进1
最终得出结果
初次编写心得,可能不太懂得各种规则,望大家多多包涵