码迷,mamicode.com
首页 > 其他好文 > 详细

基础练习 01字串

时间:2020-01-13 17:54:10      阅读:60      评论:0      收藏:0      [点我收藏+]

标签:二进制   字符   试题   没有   text   基础   printf   ret   for   

问题描述

对于长度为5位的一个01串,每一位都可能是0或1,一共有32种可能。它们的前几个是:

00000

00001

00010

00011

00100

请按从小到大的顺序输出这32种01串。

输入格式
本试题没有输入。
输出格式
输出32行,按从小到大的顺序每行一个长度为5的01串。
样例输出
00000
00001
00010
00011
<以下部分省略>
代码:

#include <stdio.h>
#include <stdlib.h>
int main() {
int i,j,k;
for(i=0;i<32;i++)
{
int m=i%32;
int a[5];
for(j=4;j>=0;j--)
{
a[j]=m%2;
m=m/2;

}
for(k=0;k<5;k++)
{
printf("%d",a[k]);
}
printf("\n");
}
return 0;
}

思考:

我一开始想的很麻烦otz想一个二维数组前面放个数后面放字符串?后面懵了很久感觉很麻烦的亚子

倒回去看题目就暴力解决了 直接输出0-31 相当于这题本质转化成十进制化二进制

我居然一开始不会转化!!还是自己手算了一个数才反应过来用除2和2取余实现otz基础课被忘到狗肚子了去了

之后没有动脑。。无脑输出数组了(= =!

这里有个点在输出一个数的时候 本来不想多加输出循环 输出语句直接放在第一个5循环里 但地址用a[4-j]的时候第一个数00000第一位0出不来 变成了4?但偷懒了没细想改了个输出循环。。

看看以后还会不会碰到先

基础练习 01字串

标签:二进制   字符   试题   没有   text   基础   printf   ret   for   

原文地址:https://www.cnblogs.com/shawu/p/12188230.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!