现在的位置: 首页 > 综合 > 正文

PHP数组练习

2012年03月31日 ⁄ 综合 ⁄ 共 1568字 ⁄ 字号 评论关闭

题目:

1、跳水比赛,8个评委打分,运动员的成绩是8个成绩去掉一个最高分和去掉一个最低分。剩下6个分数的平均分就是最后得分。使用一维数组实现打分功能。

2、并且把最高分和最低分的评委找出来。

解决方案:

第一个页面:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" >
</head>
<body>
    <h1>请裁判输入分数</h1>
        <form action="result02.php" method="post">
            裁判1<input type="text" name ="one"><br/>
            裁判2<input type="text" name ="two"><br/>
            裁判3<input type="text" name ="three"><br/>
            裁判4<input type="text" name ="four"><br/>
            裁判5<input type="text" name ="five"><br/>
            裁判6<input type="text" name ="six"><br/>
            裁判7<input type="text" name ="seven"><br/>
            裁判8<input type="text" name ="eight"><br/>
            <input type="submit" value = "提交">
        </form>
</body>
</html>

 

第二个页面:result02.php

<?php
    
    //接收数据
        $p1=$_REQUEST['one'];
        $p2=$_REQUEST['two'];
        $p3=$_REQUEST['three'];
        $p4=$_REQUEST['four'];
        $p5=$_REQUEST['five'];
        $p6=$_REQUEST['six'];
        $p7=$_REQUEST['seven'];
        $p8=$_REQUEST['eight'];
        
        //把每个人输入的值 放入到数组中
        $arr = array($p1,$p2,$p3,$p4,$p5,$p6,$p7,$p8);

        //print_r($arr);
        //取出最大和最小的值
        $p_max=max($arr);
        $p_min=min($arr);
        //print_r($arr);
        //echo $p_max,$p_min;
        //echo "<br />";
        //定义变量计算总分
        $total=0;
/*
        for($i=0;$i<count($arr);$i++){
            //echo $arr[$i]."<br />";
            $total+=$arr[$i];        
        }
*/
        foreach($arr as $v){
            
            $total+=$v;
        }
        //echo $total."<br/>";
        //减去最高最低分,最后得分
        //平均分
        //round函数 保留小数位||这是四舍五入法保留3位小数
        $last=($total-max($arr)-min($arr))/(count($arr)-2);
        //$last=($total-max($arr)-min($arr));
        echo '除去最高分和最低分的最后得分为:'.($total-max($arr)-min($arr))."<br/>";
        echo '除去最高分和最低分的最后得分的平均分为:'.round($last,3)."<br/>";

        //找出最大值和最小值对映的key :array_search函数.
        $max_k=array_search(max($arr),$arr);
        $min_k=array_search(min($arr),$arr);
        echo '最高分是第'.($max_k+1).'评委打'.max($arr).'分<br />';
        echo '最低分是第'.($min_k+1).'评委打'.min($arr).'分<br />';

?>

 

抱歉!评论已关闭.