首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图

位图排序的有关问题

2014-06-14 来源:读书人网 【读书人网(Reader8.cn):综合教育门户网站】
位图排序的问题帮我看看哪里不大对,最后输出总是把一些不是没有的数字输出来了C/C++ code#include

位图排序的问题
帮我看看哪里不大对,最后输出总是把一些不是没有的数字输出来了

C/C++ code
#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;}


[解决办法]
把所有的8-i%8,和8-n%8,
都改为i%8和n%8吧。。。