各位大大,这道编程题小白做了很久,终于做出来了。
可是感觉思维有点混乱。还有最后一个语句不知道怎么回事报错了。
so,小白只好来请教各位大大了。
( ╯□╰ )。。( ╯□╰ )。。麻烦各位热心的||好心的||有信心的大大给小白看一下。
请多多指教啦!
<!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+" "+weekday[myday]);
resul();//调用计算平均分函数
// document.write(resul());//( ╯□╰ )( ╯□╰ )正确代码
错了。</script>
</head>
<body>
</body>
</html>
在各位大大的帮助下,这题小白终于弄出来了。谢谢大家。
<!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+" "+weekday[myday]);
document.write("- - - 班级平均分:"+resul());//o(^▽^)o,这回终于没有报错了
</script>
</head>
<body>
</body>
</html>
<!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+" "+weekday[myday]); resul();//调用计算平均分函数 // document.write(resul());//( ╯□╰ )( ╯□╰ )小白不知道为什么,这个语句报错了。 </script> </head> <body> </body> </html>
你的resul()函数以document.write("- -班级平均分:"+priscore+"<br/>");结尾,并没有return返回值,所以该函数完成后就是“--班级平均分:81”,然而document.write输出内容是字符串或者是一个变量值,所以说要想用document.write去调用函数,这个函数必须是返回值或字符串的。这样你用document.write调用没有返回值的函数就会报错,对于没有返回值的函数就要直接调用,如resul();
给你看看我的思路,希望能对你有帮助:
<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>
你的resul()函数都没有返回值啊