位图排序的问题
帮我看看哪里不大对,最后输出总是把一些不是没有的数字输出来了
#include<stdio.h>#include<stdlib.h>#define NUM_TOBE_SORT 1000int main(int argc,char **argv){ char *bitmap = (char *)malloc(sizeof(char)*(NUM_TOBE_SORT/8+1)); long index,move,n;//清零 for(long i=0;i<NUM_TOBE_SORT;i++){ index = i/8,move = 8-i%8; //index是在char字符串中的位置,move是需要左移的位数 bitmap[index] &= ~(1<<move); }/* FILE *filein = fopen(argv[1],"r"); FILE *fileout = fopen(argv[2],"w+"); if(filein == NULL || fileout == NULL){ printf("open errror\n");exit(-1); }*///设置对应数字在位图中的位为1 while(scanf("%ld",&n) != EOF){ index = n/8,move = 8-n%8; bitmap[index] |= (1<<move); } puts("-------------");//检查位图输出相应的数字 for(long i=0;i<NUM_TOBE_SORT;i++){ index = i/8,move = 8-i%8; int flag = bitmap[index]&(1<<move); if(flag) printf("%ld\n",i); } return 0;}