问答详情
源自:7-23 编程练习

求求大哥,大姐帮我看看代码,我是无语了,到底哪错了?

<!DOCTYPE  HTML>
<html >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>系好安全带,准备启航</title>

<script type="text/javascript">

   var mydate= new Date();
   var myweek=["星期日","星期一","星期二","星期三","星期四","星期五","星期六"];
   var scoreStr = "小明:87;小花:81;小红:97;小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";
   var scorearr=new Array();
   scorearr=scoreStr.split(";");
   var scoreSum=0;
    for(i=0;i<scorearr.length;i++)
  {
     scoreSum=scoreSum+parseInt(score[i].substring(3,2));
   }
  document.write(mydate.getFullYear()+"年"
                +(mydate.getMonth()+1)+"月"
				+mydate.getDate()+"日"
				+myweek[mydate.getDay()]
				+"--班级总分为:"+scoreSum
				+"<br/>");
  
   var average = parseInt(scoreSum/ n);
   document.write("<br/>全班平均分为" + average);



</script>
</head>
<body>
</body>
</html>

提问者:qq_夜殇城_0 2016-03-27 10:24

个回答

  • 一缕阳光v520
    2016-03-27 11:32:21
    已采纳

    有三个地方有问题:

        1. 定义myweek的时候,数组里面的逗号要英文下的逗号

        2.      scoreSum=scoreSum+parseInt(scorearr[i].substring(3,5));  里面的数组名你写错了,是scorearr,截取的区间也错了

        3. var average = parseInt(scoreSum/scorearr.length); 你的n不知道哪里来的

  • 策神
    2016-03-27 14:17:01

    楼上指出的基本都对,不过代码都写得有些复杂,不便于新手理解,下面是我改过的代码,更简练易懂,你可以参考看看:

    <html >    

    <head>    

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

    <title>系好安全带,准备启航</title>    

    <script type="text/javascript">    

    var scoreStr = "小明:87;小花:81;小红:97;小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";    

    var s=scoreStr.split(";");    

    var sum=0;    

    var pj=0;    

    var rq=new Date();    

    var week=["星期日","星期一","星期二","星期三","星期四","星期五","星期六"];    

    for(var i=0;i<s.length;i++){    

    sum=sum+parseInt(s[i].substring(3));    

    }    

    pj=sum/s.length;    

    pj=Math.floor(pj);    

    document.write(rq.getFullYear()+"年"+(rq.getMonth()+1)+"月"+rq.getDate()+"日"+"&nbsp"+week[rq.getDay()]+"&nbsp;&nbsp"+"班级的总分为:"+sum+"&nbsp;&nbsp"+"班级的平均分为:"+pj);    

    </script>    

    </head>    

    <body>    

    </body>    

    </html>    


  • _ida_
    2016-03-27 11:58:24

    您好,试过您的代码以后,我做了如下改动:

    1. 定义myweek数组时的逗号将其改为英文输入格式;

    2. for(i=0;i<scorearr.length;i++)

        {

           scoreSum=scoreSum+parseInt(score[i].substring(3,2));

         }

      ① for循环语句中,parseInt函数中score数组名改为之前定义的scorearr

      ② 运用substring方法时,将括号内的数字改为只有3或者改为3和5;或者改为使用substr方法,则不需要动括号内的数字

    3. var average = parseInt(scoreSum/ n);

      改动:由于之前并没有定义字符n,故此时可将n改为scorearr.length;或者定义n,把scorearr.length的值赋给n

    4. 根据题目要求,将JS输出班级总分为的冒号改为英文输入格式

    只能改动到如此地步, 如有不周之处,请谅解。一起努力吧!

  • 甘甘家的大兔子
    2016-03-27 11:15:17

    <script type="text/javascript">

    var mydate=new Date();//获取当前时间

    var year=mydate.getFullYear();//获取年份

    var month=mydate.getMonth()+1;//获取月份

    var date=mydate.getDate();//获取日期

    var day=['星期天','星期一','星期二','星期三','星期四','星期五','星期六']//星期返回值为0-6,所以要转成文字"星期X"


        var scoreStr = "小明:87;小花:81;小红:97;小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";

    var myarr=scoreStr.split(";")//以分号间隔,将字符串转为数组

    var y=myarr.length;//用y储存字符串长度

    for(i=0;i<y;i++){

            myarr[i]=myarr[i].substr(-2,2);//截取字符串最后两个字符

            myarr[i]=parseInt(myarr[i]);//字符串→数字

            }

        var sum=0,ave=0;//初始化总分和平均分

        for(i=0;i<y;i++){

            sum=sum+myarr[i]//计算总分

            }

        ave=sum/y;//计算平均分

        ave=Math.round(ave);//平均分四舍五入

    document.write(year+"年"+month+"月"+date+"日 "+day[mydate.getDay()]+"--班级总分为"+sum+"分,平均分为:"+ave+"分")

    </script>

    以上所有代码均带注释

  • 慕神1969275
    2016-03-27 11:10:15

    scoreSum=scoreSum+parseInt(score[i].substring(3,2));//这里写错了数组名字,还有substring的用法,自己百度这个函数用法

    改成scoreSum=scoreSum+parseInt(scorearr[i].substring(3,5));

    var average = parseInt(scoreSum/ n);//这里n未定义应该改成数组的长度var average = parseInt(scoreSum/scorearr.length);


  • 最北的北方_0
    2016-03-27 11:08:10

    你的scoreStr定义的是一个字符串,他根本不是数组,不能引用数组的属性;你直接吧他定义成一个数组看看