一个C语言问题
在这个题目中,你需要编写一个c++程序,要求输出以下内容:
0000
0001
0010
.....
1110
1111
(输出0到31的每个数的二进制表示,每行一个,前面的0也必须输出!)
1)部分代码已经为你完成:
#include "stdio.h"
void printall();
void p(int d);
void p(char c);
void pl(int d);
void p(char *str);
void pl(char *str);
int main()
{
printall();
return 0;
}
void printall()
{
//Your Code Here!
}
void p(int d)
{
printf("%d",d);
}
void pl(int d)
{
printf("%d\n",d);
}
void p(char c)
{
printf("%c",c);
}
void pl(char c)
{
printf("%c\n",c);
}
void p(char *str)
{
printf("%s",str);
}
void pl(char *str)
{
printf("%s\n",str);
}
2)
只能在printall()方法中添加你的代码。
*要求:代码所占的字节数尽可能的少。
这里给一个我写的方法,大家的有更好的么?
void printall()
{
#define x(i) c[i]==50?c[i]=48,c[i-1]++:0;
for (char c[] = "0000", i = 0; i<16; i++, c[3]++){ x(3)x(2)x(1)pl(c); }
}


浙公网安备 33010602011771号