前言:
眼前大家对“数据结构求最大值最小值的方法是什么”大致比较重视,朋友们都需要了解一些“数据结构求最大值最小值的方法是什么”的相关资讯。那么小编同时在网上搜集了一些关于“数据结构求最大值最小值的方法是什么””的相关文章,希望同学们能喜欢,兄弟们快快来了解一下吧!原码如下:
备注:本程序的数组输入索引是必须从0开始,本代码已通过测试,拷贝即可使用IF IS_ARRAY(#in_array) THEN//判断是否是数组#arr_length := UDINT_TO_DINT(CountOfElements(#in_array)); //找到数组的长度,函数返回值类型是UDINT,要转成DINT
IF #arr_length < #max_length THEN //如果输入的数组的长度小于设定的最大长度 则进行以下判断//**************************判断数组是整数进行计算***************************************
IF TypeOfElements(#in_array) = Int THEN //判断输入数组的类型
VariantGet(SRC := #in_array,
DST => #arr_int_temp);
#max_number_temp_int := #arr_int_temp[0]; //把索引为0的数认为是最大值
#max_index_temp := 0; //把0索引存起来
FOR #i := 0 TO #max_length - 1 DO //循环 从最小索引开始,到最大索引结束
IF #max_number_temp_int < #arr_int_temp[#i] THEN //如果最大值小于后面索引的值
#max_number_temp_int := #arr_int_temp[#i]; //则把后面索引的值存入最大值变量里
#max_index_temp := #i; //再把索引存起来
END_IF;
#sum := #sum + #arr_int_temp[#i];
END_FOR;
VariantPut(SRC := #max_number_temp_int,
DST := #max_out); //把最大值输出 int
#max_index := #max_index_temp; //把最大值的索引输出
#avg := #sum / #arr_length;
//*******************************如果数组是浮点进行计算*********************************
ELSIF TypeOfElements(#in_array) = Real THEN //判断输入数组的类型
VariantGet(SRC := #in_array,
DST => #arr_real_temp); //把输入的数组传入到内部数组进行处理
#max_number_temp_real := #arr_real_temp[0]; //把索引为0的数认为是最大值
#max_index_temp := 0; //把0索引存起来
FOR #i := 0 TO #max_length - 1 DO //循环 从最小索引开始,到最大索引结束
IF #max_number_temp_real < #arr_real_temp[#i] THEN //如果最大值小于后面索引的值
#max_number_temp_real := #arr_real_temp[#i]; //则把后面索引的值存入最大值变量里
#max_index_temp := #i; //再把索引存起来
END_IF;
#sum := #sum + #arr_real_temp[#i];
END_FOR;
VariantPut(SRC := #max_number_temp_real,
DST := #max_out); //把最大值输出 real
#max_index := #max_index_temp; //把最大值的索引输出
#avg := #sum / #arr_length;
END_IF;
ELSE
#message := 'fault'; //如果输入的数组长度超过200个,那就报错
END_IF;
END_IF;
标签: #数据结构求最大值最小值的方法是什么