A小小鸟 发表于 2020-1-10 12:53:43

jackz007 发表于 2020-1-9 21:14
多谢提醒,疏忽了。

      编译、运行结果与前面完全相同

抱歉啊,你代码就是for循环那里格式能整齐一下吗,代码有点混乱,我都看不明白{:10_266:}

jackz007 发表于 2020-1-10 13:00:39

本帖最后由 jackz007 于 2020-1-10 13:05 编辑

A小小鸟 发表于 2020-1-10 12:53
抱歉啊,你代码就是for循环那里格式能整齐一下吗,代码有点混乱,我都看不明白

      这样可以了吗?
#include <stdio.h>
main(void)
{
      unsigned char data[] = {
      0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x07,0x09,\
      0x00,0x20,0x10,0x03,0x03,0x0C,0x00,0x00,0x44,0x00,\
      0x00,0x33,0x00,0x47,0x0C,0x0E,0x00,0x0D,0x00,0x11,\
      0x00,0x00,0x00,0x02,0x64,0x00,0x00,0x00,0xAA,0x00,\
      0x00,0x00,0x64,0x10,0x00,0x00,0x00,0x00,0x00,0x00,\
      0x00,0x00,0x02,0x00,0x74,0x0F,0x41,0x00,0x00,0x00,\
      0x01,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x0A,0x00,\
      0x00,0x02,0x74,0x0F,0x41,0x00,0x06,0x08,0x00,0x00,\
      0x00,0x00,0x00,0x64,0x00,0x0F,0x00,0x00,0x0D,0x00,\
      0x00,0x00,0x23,0x00,0x00,0x64,0x00,0x00,0x64,0x00 }                ;
      unsigned char      * p1                                          ;
      unsigned short   * p2                                          ;
      unsigned int       * p4                                          ;
      unsigned long long * p8                                          ;
      int d , k                                                          ;
      for(k = 0 , p1 = & data ; k < 100 ; k ++ , p1 ++) if(* p1 == 100) {
                printf(" Byte : [%d] = 100\n" , k)                         ;
      }
      for(d = 0 ; d < 2 ; d ++) {
                for(k = d , p2 = (unsigned short *) & data ; k + 1 < 100 ; k += 2 , p2 ++) {
                        if(* p2 == 100) printf(" Word : [%d] = 100\n" , k) ;
                }
      }
      for(d = 0 ; d < 4 ; d ++) {
                for(k = d , p4 = (unsigned int *) & data ; k + 3 < 100 ; k += 4 , p4 ++) {
                        if(* p4 == 100) printf("DWord : [%d] = 100\n" , k) ;
                }
      }
      for(d = 0 ; d < 8 ; d ++) {
                for(k = d , p8 = (unsigned long long *) & data ; k + 7 < 100 ; k += 8 , p8 ++) {
                        if(* p8 == 100) printf("QWord : [%d] = 100\n" , k) ;
                }
      }
}
      怎么突然有股屈辱感,竟然有在伺候甲方大爷的感觉呢!!!

A小小鸟 发表于 2020-1-10 13:50:17

本帖最后由 A小小鸟 于 2020-1-10 14:57 编辑

jackz007 发表于 2020-1-10 13:00
这样可以了吗?

      怎么突然有股屈辱感,竟然有在伺候甲方大爷的感觉呢!!!

谢谢大哥辛苦的写代码,但是我要遗憾的说,大哥可能做错了,首先题目可能大哥就没看明白,要求的搜索方式大哥可能也没明白,所以代码直接是错的,但是还是谢谢大哥了
题目寿命了搜索100是int型,已经告诉了,然后要求是输出可能的结果以及地址,不是输出多少个,然后搜索,是一个字节一个字节搜索,但是比较是四个字节比较的,比如这个数组,开始查找是0x00开始,然后0x00,0x01,0x02,0x03四个字节比较,下一次应该从0x01开始0x01,0x02,0x03,0x04这四个字节比较,这样的方式搜索的,只能用指针进行移动,然后指针转换,所以大哥可能写错了{:10_266:}
页: 1 [2]
查看完整版本: 求解连个程序哪个对那个错啊??