首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

今天去面试碰到个这样的题解决方法

2012-04-24 
今天去面试碰到个这样的题提供100个字节空间,往里面存数据,如果7位都是0,就结束,然后以字符形式输出里面的

今天去面试碰到个这样的题
提供100个字节空间,往里面存数据,如果7位都是0,就结束,然后以字符形式输出里面的内容

  他说要用2个计数器 一个到7了再回到1 一个磊加 

大侠们帮忙看看啊!

[解决办法]

C/C++ code
int filldata(void){  char *buf[100];  int zc = 0;  int i;  char c;  for(i=0; i<100; ++i) {    c = rand()&255;/* 或者自己输入数字 */    buf[i] = c;    if((0==c) {      if(++zc>=7) {        break;      }    } else {      zc = 0;    }  }}
[解决办法]
int fuck(void)
{
char *buf[100];
int zc = 0;
int i, j;
char c;

for(i = 0; i < 100; i++){
c = rand() & 255;
buf[i] = c;

for(j = 0; j < 8; j++){
if((buf[i] & 0x1) == 0){
if(++zc == 7){
break;
}
}
else{
zc = 0;
}
}

if(j < 8){
break;
}
}

return 0;
}
[解决办法]
他那个7位是不是bit的意思?看看这么写对不?
C/C++ code
void filldata(){    char array[100];    int *a;    int zeronum=0;    int c;    int i;    int len=0;    while(len<100){            c=rand()%128;            a=&c;        for(i=0;i<8;i++){            if((*a>>i&1)==0)                zeronum++;            if((*a>>i&1)!=0)                zeronum=0;            if(zeronum>=7){                array[len]='\0';                goto result;}        }                        array[len]=(char)*a;            ++len;    }result:    cout<<array<<endl;    } 

热点排行