鱼C论坛

 找回密码
 立即注册
12
返回列表 发新帖
楼主: A小小鸟

求解连个程序哪个对那个错啊??

[复制链接]
 楼主| 发表于 2020-1-10 12:53:43 | 显示全部楼层
jackz007 发表于 2020-1-9 21:14
多谢提醒,疏忽了。

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

抱歉啊,你代码就是for循环那里格式能整齐一下吗,代码有点混乱,我都看不明白
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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] ; 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] ; 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] ; 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] ; k + 7 < 100 ; k += 8 , p8 ++) {
                        if(* p8 == 100) printf("QWord : [%d] = 100\n" , k) ;
                }
        }
}
        怎么突然有股屈辱感,竟然有在伺候甲方大爷的感觉呢!!!

评分

参与人数 1荣誉 +5 鱼币 +5 贡献 +3 收起 理由
A小小鸟 + 5 + 5 + 3 辛苦了啊

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 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这四个字节比较,这样的方式搜索的,只能用指针进行移动,然后指针转换,所以大哥可能写错了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-5 07:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表