php作业评讲_数组练习题

作者: 鲁智深 分类: PHP 发布时间: 2015-01-30 15:09

作业一

已知手掌y游戏机一台320元,mp3一台260元。公司举行抽奖大会,公司有18人,一等奖游戏机,二等奖mp3,购入5台游戏机,13台mp3。问总价为多少,公司实际平均给美乳花费了多少钱。

代码

1
2
3
4
5
6
7
8
9
//商品价格
$gamePrice=320;
$mp3Price=260;
//商品数量
$gameNum=5;
$mp3Num=13;

$tatalPrice=$gamePrice*$gameNum+$mp3Price*$mp3Num;
$avgPrice=$tatalPrice/18;

作业二

(x,y用户输入)

手掌游戏机一台x元,mp3一台y元。公司举行抽奖大会,一等奖游戏机5台,二等奖mp3 13台。公司共有30人。问总价为多少,公司实际平均给每人花费了多少钱。

1
2
3
4
5
6
7
8
9
10
11
12
13
    //商品价格(x,y应该以表单提交方式)
    $x = 3000;
    $y = 400;

    //商品数量
    $gameNum=5;
    $mp3Num=13;
   
    $tatalPrice=$x*$gameNum+$y*$mp3Num;
    $avgPrice=$tatalPrice/30;
   
    echo '总价为'.$tatalPrice.'元';
    echo "<br/>公司实际平均给每人花费".$avgPrice.'元';

作业三

(x,y用户输入)

手掌游戏机一台320元,mp3一台260元。公司举行抽奖大会,一等奖游戏机x台,二等奖mp3 y台。公司共有30人。问总价为多少,公司实际平均给每人花费了多少钱。

1
2
3
4
5
6
7
8
9
10
11
12
13
    //商品价格
    $gamePrice = 320;
    $mp3Price = 260;

    //商品数量(x,y应该以表单提交方式)
    $x = 15;
    $y = 15;
   
    $tatalPrice=$x*$gameNum+$y*$mp3Num;
    $avgPrice=$tatalPrice/30;
   
    echo '总价为'.$tatalPrice.'元';
    echo "<br/>公司实际平均给每人花费".$avgPrice.'元';

作业四

1、打印如下图形

*********

*********

*********

*********

*********

作业五

2、打印如下图形

*

**

***

****

*****

作业六

3、打印如下图形

        *

      ***

    *****

  *******

*********

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
//$n表示层数
$n=2;
//"a"->表示矩形 "b"=>一半金子塔 "c"=>完整的金字塔
$shape="a";
$satarNum=5;
//swtich
    function printShape($n,$shape,$satarNum=5){
       swtich($shape){
//打印矩形
         case "a":
          for($i=1;$i<=$n;$i++){
             for($j=1;$j<=$satarNum;$j++){
               echo "*";
}
//打完一层后,换行
             echo "<br/>";
          }
              break;
//打印一半金子塔
         case "b":
            for($i=1;$i<=$n;$i++){
                for($j=1;$j<=$i;$j++){
             echo "*";
}
//打完一层后,换行
             echo "<br/>";
           }
             break;
//打印完整的金字塔
         case "c":
             break;
}
}

//调用函数
printShape($n,$shape);

灵活运用创建输入页面

1
2
3
4
5
6
7
8
9
10
<from action="homework01.php" method="post">
请输入层数:<input type="text" name="layer"/><br/>
请选择形状:
<select name="shape">
<option value="a">矩形</option>
<option value="b">半金字塔</option>
<option value="c">金字塔</option>
</select><br/>
<input type="submit" value="打印"/>
</from>

接收层数和形状需要修改成

1
2
3
4
//$n表示层数
$n=$_REQUEST['layer'];
//"a"->表示矩形 "b"=>一半金子塔 "c"=>完整的金字塔
$shape=$_REQUEST['shape']";

作业七

1、输出九九乘法表,要求行列对齐。

1
2
3
4
5
6
7
8
//$i控制行,$j控制每行增长
for($i=1;$i<=9;i++){
    for($j=1;$j<=$i;$j++){
      echo "$j*$i=".$i*$j;
      echo '&nbsp';
}
      echo '</br>';
}

作业八

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

2、请把打最高分的评委和最低分的评委找出来。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
$arr=array(90,23,34,78,98,25,56,44);
//这里有一个思路,如果只想知道最低分和最高分是多少,则可以排序
//找出给出最低分的裁判
    //该函数可以返回给出最低分的裁判的下标
    function findMin($arr){
      //假设第一个人就是给出最低分的裁判
      $minFen=$arr[0];
      $minIndex=0;
      for($i=1;$i<count(&$arr).$i++){
        //如果下面条件成立,说明$i裁判给出的成绩更低
        if($minFen>$arr[$i]){
           $minFen=$arr[$i];
           $minIndex=$i;
}
}
     return $minIndex;
}

//找出给出最高分的裁判
function findMax($arr){
      //假设第一个人就是给出最高分的裁判
      $MaxFen=$arr[0];
      $MaxIndex=0;
      for($i=1;$i<count(&$arr).$i++){
        //如果下面条件成立,说明$i裁判给出的成绩更高
        if($MaxFen<$arr[$i]){
           $MaxFen=$arr[$i];
           $MaxIndex=$i;
}
}
     return $MaxIndex;
}

     $MaxIndex=findMax($arr);
     $minIndex=findMin($arr);

//开始计算平均成绩
$sum=0;
for($i=0;$i<count($arr);$i++){
     if($i!=$minIndex && $i!=MaxIndex){
       $sum+=$arr[$i];
}
}

     echo "下标为".$minIndex."给的分最低".$arr[$minIndex];
     echo "<br/>下标为".$MaxIndex."给的分最高".$arr[$MaxIndex];

3、找出最佳评委和最差评委。最佳评委就是打分和最后得分最接近的评委。最差评委就是打分和最后得分相差最大的。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
$arr=array(45,90,2,100);
//1.求出最后平均得分(假设前面求出)
$avgGrade=70;
//先求最佳评委
//假设第一个评委就是最佳评委(abs绝对值)
$difFen=abs($arr[0]-$avgGrade);
//记录下这个评委的下标
$goodIndex=0;

for($i=1;$i<count($arr);$i++){
    if($difFen>abs($arr[$i]-$avgGrade)){
       $difFen=abs($arr[$i]-$avgGrade);
       $goodIndex=$i;
}
}
//最佳评委就是
echo $i;

//求最差评委
//假设第一个评委就是最差评委(abs绝对值)
$difFen=abs($arr[0]-$avgGrade);
//记录下这个评委的下标
$goodIndex=0;

for($j=1;$j<count($arr);$j++){
    if($difFen<abs($arr[$j]-$avgGrade)){
       $difFen=abs($arr[$j]-$avgGrade);
       $goodIndex=$j;
}
}
//最佳评委就是
echo $j;

作业九

现有数组A=array(“dog”,”cat”,”bird”);B=array(“people”,”dog”,”mouse”);不使用函数,将A数组和B数组,进行合并,要求没有重复的值

1
2
3
4
5
6
7
8
9
10
11
     $arrA = array("dog","cat","bird");
     $arrB = array("people","dog","mouse");
     foreach($arrB as $val){
         var_dump($val);
         if(!in_array($val,$arrA)){
         $arrA[] = $val;
         }
     }
     var_dump($arrA);
     //去重函数
     //var_dump(array_unique($arrA));

作业十

写一个函数,实现如下功能把open_door ,my_shool_name …转成OpenDoor ,MyShoolName

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
          $str = "open_door";
     //$str = str_replace("_"," ",$str);
     //$str = ucwords($str);
     //$str = str_replace(" ","",$str);
     //echo $str;
     
     //写成函数
     function getString($str){
         $str = str_replace("_"," ",$str);
         $str = ucwords($str);
         $str = str_replace(" ","",$str);
         return $str;
     }
     $res = getString($str);
     echo $res;

作业十一

用php实现随机获取26个字母中的6个字母

1
2
3
4
5
6
7
8
9
10
11
12
13
14
     function getRandWorks($num,$norepeat=false){//第二个$norepeat是非必须参数
         $str = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
         $restr = "";
         for($i=1;$i<= $num;$i++){
                 $randTag = $str[mt_rand(0,strlen($str)-1)];
                 $restr .=$randTag;
                 if($norepeat){//实现获取的字符串,没有重复字符
                     $str = str_replace($randTag,"",$str);
                 }
             }
         return $restr;
     }
     $restr = getRandWorks(6,true);
     echo $restr;

练习题

在运动会上,有5个小孩比赛滑轮,他们的滑完100米,分别用了10s、12s、5.7s、9s、14s,请编写一个程序,计算他们的平均时间?

编写arr.php输入文件

1
2
3
4
5
<h1>请输入5个小孩的成绩,用空格隔开</h1>
<from action="result.php" method="post">
<input type="text" name="grade"/>
<input type="submit" value"开始统计"/>
</from>

编写result.php输出文件

1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
//接收用户提交的学生的成绩
$grades=$_REQUEST['grade'];
echo 'grade='.$grades;//测试有没有接受到数据
//拆分,对成绩进行分割
$grades=explode("",$grades);
//遍历一下
$allgrades=0;
foreach($grades as $k=>$v){
    $allgrades+=$v;//隐藏转换 string->float
}
echo "评价时间=".$allgrades/count($grades);
?>

如果时间保留小数点后两位

1
echo "评价时间=".round($allgrades/count($grades), 2);

如果想输入的值粘帖在输入框中

1
<input type="text" name="grade" value="<?php echo $gradesl;?>"/>

小结

1、数组可存放任意类型的数据

2、数组大小不必事先指定,可以动态增长

3、数组名可以理解为指向数组首地址的引用

4、数组中的元素以key=>value的形式存在

5、如果没有给数组指定的key,则取当前最大的整数索引值,而新的键名是该值加1。

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

发表评论

电子邮件地址不会被公开。 必填项已用*标注