为了账号安全,请及时绑定邮箱和手机立即绑定

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

<!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>

正在回答

6 回答

有三个地方有问题:

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

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

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

0 回复 有任何疑惑可以回复我~
#1

qq_夜殇城_0 提问者

非常感谢!
2016-04-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>    


0 回复 有任何疑惑可以回复我~

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

  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输出班级总分为的冒号改为英文输入格式

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

1 回复 有任何疑惑可以回复我~

<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>

以上所有代码均带注释

0 回复 有任何疑惑可以回复我~

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);


1 回复 有任何疑惑可以回复我~

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

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信