一個一維數組的最大值 (數組學習思想)

一維數組中,$arr = array(1,5,23,3);

找出最大值,體現出個思想

假定 最大值就是第一個$arr[0];

然後循環...取出每一個值去比較即可

<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />

<?php

//這一行php的作用,跟上一行meta的作用一樣:告訴瀏覽器,請用utf8顯示本網頁

header("Content-Type:text/html;charset=UTF-8");


//求一個一維數組的平均值:

$a = array(1, 11, 111, 1111);

$len = count($a); //長度

$sum = 0; //用於總和

$c = 0; //用於存儲數組的個數

for($i = 0; $i<$len; ++$i){

$sum += $a[$i]; //累加思想

++$c; //計數思想

}

echo "<br />平均值爲:" . ($sum/$c);


//求一個二維數組的平均值:

$dd = array(

array(1, 11, 111),

array(2, 22, 222, 2222),

array(3, 33, 333, 3333,33333)

);

$len = count($dd);//長度,這裏是3

$sum = 0; //用於總和

$c = 0; //用於存儲數組的個數

for($i = 0; $i < $len; ++$i){

$temp = $dd[$i]; //這是一個一維數組!

$len2 = count($temp);//該一維數組的長度

for($k = 0; $k < $len2; ++$k){

$sum += $temp[$k];//累加

++$c; //計數

}

}

echo "<br />平均值爲:" . ($sum/$c);


//求一個一維數組的最大值,及其對應下標:

$arr3 = array(13,  8,  5,  11,  22,  2);

$max = $arr3[0]; //將第一項放入$max中,

//並試圖使用該變量來存儲最終的“最大值”

$pos = 0;//第一個下標,並試圖使用該變量來存儲最終的“最大值所在下標”

$len = count($arr3); //長度

for($i = 0; $i < $len; ++$i){

if($arr3[$i] > $max){

$max = $arr3[$i];

$pos = $i;

}

}

echo "<br />最大值爲:" . ($max) . ",其下標爲:$pos";


//求交換一個一維數組的最大值和最小值的位置:

//先看交換原理:

$a = 3;

$b = 4;

$t = $a;

$a = $b;

$b = $t;

//然後,才進行數組最大值和最小值的的交換

//其它前提是:知道最大值最小值在哪裏:

$arr3 = array(13,  38,  5,  11,  22,  2);

echo "<br />交換之前:";  print_r($arr3);

$max = $arr3[0]; //將第一項放入$max中,

//並試圖使用該變量來存儲最終的“最大值”

$pos = 0;//第一個下標,並試圖使用該變量來存儲最終的“最大值所在下標”

$min = $arr3[0]; //同理!

$pos2 = 0; //同理

$len = count($arr3); //長度

for($i = 0; $i < $len; ++$i){

if($arr3[$i] > $max){

$max = $arr3[$i];

$pos = $i;

}

if($arr3[$i] < $min){

$min = $arr3[$i];

$pos2 = $i;

}

}

echo "<br />最大值爲:" . ($max) . ",其下標爲:$pos";

echo "<br />最小值爲:" . ($min) . ",其下標爲:$pos2";

//然後纔開始交換:

$t = $arr3[$pos]; //$arr3[$pos]就是數組的最大值的單元

$arr3[$pos] = $arr3[$pos2];//$arr3[$pos2]就是數組的最小值的單元

$arr3[$pos2] = $t;

echo "<br />交換之後:";  print_r($arr3);


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章