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

编程题,计算某班成绩?

各位大大,这道编程题小白做了很久,终于做出来了。

可是感觉思维有点混乱。还有最后一个语句不知道怎么回事报错了。

so,小白只好来请教各位大大了。

( ╯□╰ )。。( ╯□╰ )。。麻烦各位热心的||好心的||有信心的大大给小白看一下。

请多多指教啦!

正在回答

6 回答

<!DOCTYPE  HTML>

<html >

<head>

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

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


<script type="text/javascript">


  //通过javascript的日期对象来得到当前的日期,并输出。

  var mydate=new Date();

  var time=mydate.getFullYear()+"年"+mydate.getMonth()+"月"+mydate.getDate()+"日";

  var myday=mydate.getDay();

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

  //weekday[myday]实现数字和星期几的转换

  //成绩是一长窜的字符串不好处理,找规律后分割放到数组里更好操作哦

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

  var newscore=scoreStr.split(";"); //分割字符串成字符串数组。

  document.write("分割后得到的字符串数组:"+"<br/>"+newscore+"<br/>");//测试代码

  //document.write(newscore[0]+"<br/>");//测试代码

  document.write("数组长度:"+newscore.length+"<br/>");

  function resul(){

    var sum = 0;

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

     newscore[i]=newscore[i].substring(3);//提取数组元素中的分数,重新给数组赋值

    //document.write(newscore[i]+"<br/>");

    sum=sum+parseInt(newscore[i]);//计算班级总分;parseInt(newscore[i])从数组中将成绩撮出来。然后求和取

    return sum;

return newscore[i];

//使用parseInt()函数可解析一个字符串,并返回一个整数。

  }

 //document.write("新数组:"+newscore+"<br/>");

 var priscore=Math.round(sum/newscore.length);//计算平均分

 document.write("- -班级平均分:"+priscore+"<br/>");

  }


  //从数组中将成绩撮出来,然后求和取整,并输出。

 document.write(time+"&nbsp"+weekday[myday]);

   resul();//调用计算平均分函数

  // document.write(resul());//( ╯□╰ )( ╯□╰ )正确代码

错了。</script>

</head>

<body>

</body>

</html>



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

墨小漓 提问者

(●'◡'●),大大你真厉害。看了你的解释,脑袋开窍了。666666
2016-09-02 回复 有任何疑惑可以回复我~

在各位大大的帮助下,这题小白终于弄出来了。谢谢大家。

<!DOCTYPE  HTML>

<html >

<head>

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

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


<script type="text/javascript">


  //通过javascript的日期对象来得到当前的日期,并输出。

  var mydate=new Date();

  var time=mydate.getFullYear()+"年"+mydate.getMonth()+"月"+mydate.getDate()+"日";

  var myday=mydate.getDay();

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

  //weekday[myday]实现数字和星期几的转换

  //成绩是一长窜的字符串不好处理,找规律后分割放到数组里更好操作哦

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

  var newscore=scoreStr.split(";"); //分割字符串成字符串数组。

  document.write("分割后得到的字符串数组:"+"<br/>"+newscore+"<br/>");//测试代码

  document.write("数组长度:"+newscore.length+"<br/>");

  function resul(){

    var sum = 0;

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

     newscore[i]=newscore[i].substring(3);//提取数组元素中的分数,重新给数组赋值

    //document.write(newscore[i]+"<br/>");

    sum=sum+parseInt(newscore[i]);//计算班级总分;parseInt(newscore[i])从数组中将成绩撮出来。然后求和取

     //使用parseInt()函数可解析一个字符串,并返回一个整数。

    

  }

 //document.write("新数组:"+newscore+"<br/>");

 var priscore=Math.round(sum/newscore.length);//计算平均分

return priscore;//平均分

  }


  //从数组中将成绩撮出来,然后求和取整,并输出。

 document.write(time+"&nbsp"+weekday[myday]);

  document.write("- - - 班级平均分:"+resul());//o(^▽^)o,这回终于没有报错了

</script>

</head>

<body>

</body>

</html>


0 回复 有任何疑惑可以回复我~
<!DOCTYPE  HTML>
<html >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>系好安全带,准备启航</title>

<script type="text/javascript">

  //通过javascript的日期对象来得到当前的日期,并输出。
  var mydate=new Date();
  var time=mydate.getFullYear()+"年"+mydate.getMonth()+"月"+mydate.getDate()+"日";
  var myday=mydate.getDay();
  var weekday=["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]; 
  //weekday[myday]实现数字和星期几的转换
  //成绩是一长窜的字符串不好处理,找规律后分割放到数组里更好操作哦
  var scoreStr = "小明:87;小花:81;小红:97;小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";
  var newscore=scoreStr.split(";"); //分割字符串成字符串数组。
  document.write("分割后得到的字符串数组:"+"<br/>"+newscore+"<br/>");//测试代码
  //document.write(newscore[0]+"<br/>");//测试代码
  document.write("数组长度:"+newscore.length+"<br/>");
  function resul(){
    var sum = 0;
  for(var i=0;i<newscore.length;i++){
     newscore[i]=newscore[i].substring(3);//提取数组元素中的分数,重新给数组赋值
    //document.write(newscore[i]+"<br/>");
    sum=sum+parseInt(newscore[i]);//计算班级总分;parseInt(newscore[i])从数组中将成绩撮出来。然后求和取
     //使用parseInt()函数可解析一个字符串,并返回一个整数。
  }
 //document.write("新数组:"+newscore+"<br/>");
 var priscore=Math.round(sum/newscore.length);//计算平均分
 document.write("- -班级平均分:"+priscore+"<br/>");
  }

  //从数组中将成绩撮出来,然后求和取整,并输出。
 document.write(time+"&nbsp"+weekday[myday]);
   resul();//调用计算平均分函数
  // document.write(resul());//( ╯□╰ )( ╯□╰ )小白不知道为什么,这个语句报错了。
</script>
</head>
<body>
</body>
</html>


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

你的resul()函数以document.write("- -班级平均分:"+priscore+"<br/>");结尾,并没有return返回值,所以该函数完成后就是“--班级平均分:81”,然而document.write输出内容是字符串或者是一个变量值,所以说要想用document.write去调用函数,这个函数必须是返回值或字符串的。这样你用document.write调用没有返回值的函数就会报错,对于没有返回值的函数就要直接调用,如resul();

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

墨小漓 提问者

是呢。是返回值和全局变量的问题。 o(^▽^)o 这次小白写对了。thank you 思密达。
2016-09-02 回复 有任何疑惑可以回复我~

给你看看我的思路,希望能对你有帮助:

<script type="text/javascript">
  Days = ["星期一","星期二","星期三","星期四","星期五","星期六","星期日"]
  //通过javascript的日期对象来得到当前的日期,并输出。
  var date = new Date();
  document.write(date.getFullYear()+"年"+date.getMonth()+"月"+date.getDate()+"日 "+Days[date.getDay()]);

  //成绩是一长窜的字符串不好处理,找规律后分割放到数组里更好操作哦
  var scoreStr = "小明:87;小花:81;小红:97;小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";
  var students = scoreStr.split(";"); //把每个人分开放到数组里面
  var tot=0;
  for(var i=0; i<10;++i){ //取成绩,剔除掉名字和冒号
      students[i] = students[i].substring(3,5);
  }
  //从数组中将成绩撮出来,然后求和取整,并输出。
  for(var i=0; i<10;++i){ //算总分,成绩还是字符串,所以注意把字符串转换为整数
      tot = tot + parseInt(students[i]);
  }
  document.write("--班级总分为:"+tot/10)

</script>


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

墨小漓 提问者 回复 imalwayshere

好哒,thank you 思密达!
2016-09-02 回复 有任何疑惑可以回复我~

你的resul()函数都没有返回值啊

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

举报

0/150
提交
取消

编程题,计算某班成绩?

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