这个最大值重新定义的数组为什么是这样,里面的-1是什么作用

img


第237和第241行里面的-1是什么作用啊
我能想到用for循环但是不理解为什么这个要用-1来把两个数组联系起来

这里的-1代表数组里面元素为无效。
根据这个程序的理解,array数组传递进来的数据前面j个都是有效的,第j+1个无效因此array[j]等于-1;
将数据从array拷贝到temp也是一样,把前j个有效数据拷贝到temp,第j+1个temp元素设置为-1;
获得最大值,也只比较有效数组,无效的不比较。
有疑问可以私聊。

  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7606603
  • 这篇博客也不错, 你可以看下【实验】实验课总结1 绘制简单电路图
  • 除此之外, 这篇博客: 数据结构、通用数据类型队列,线程池任务队列中的 1.通用队列数据结构和函数声明 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • linkqueue.h
    先条件编译判断data_t是否已经定义,
    如果没有定义,就用void * 为data_t,这样在使用的过程中需要强转为void* 类型。

    #if data_t_defined == 0
    typedef void* data_t;
    #endif
    
    typedef struct queuenode{
    	data_t data;
    	struct queuenode * next;
    }Queuenode, *Quenode;
    
    typedef struct linkqueue{
    	Quenode front;
    	Quenode rear;
    }Linkqueue, *Linkque;
    
    Linkque queue_create();//创建队列
    Quenode queuenode_create(data_t value);//队列内部使用,入队之前动态创建一个元素
    int enqueue(Linkque linkque, data_t value);//入队
    data_t dequeue(Linkque linkque);//出队
    int queue_clear(Linkque linkque);//销毁队列
    int queue_empty(Linkque linkque);//清空队列元素
    
  • 您还可以看一下 李强老师的微信公众号基础开发与服务器连接实战课程中的 课时1 自定义菜单小节, 巩固相关知识点