一个班六个人,学号语文、数学、英语,接收成绩(不接受学号),输出学号成绩,总分、平均分,按总分排序(原生JS)
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
</head> <body>
</body>
</html>
<script>
//一个班六个人,学号语文、数学、英语,接收成绩(不接受学号),输出学号成绩,总分、平均分,按总分排序
grade();
function grade(){
var arr = []; //定义一个数组,用来存输入的元素
var n = parseInt(prompt("请输入人数")); //用来确定循环次数
var classs = ["语文成绩","数学成绩","英语成绩"]; //定义一个新的数组用来确定数组中的数组元素
for(var i = 0 ;i<n;i++){ //多少个人循环多少次
var brr = []; //定义一个新的二维数组
brr[0] = prompt("请输入"+(i+1)+"姓名"); //
for(var j = 1;j<=classs.length;j++){
brr[j] = parseInt(prompt("请输入"+brr[0]+"的"+classs[j-1]));
}
arr[i] = brr; //每循环一次在数组的后面添加一个元素(数组),并赋值
}
// console.log(arr); //把平均分和总分添加到数组后面
for(var i = 0; i<arr.length; i++){ //遍历这个数组
var zf = arr[i][1]+arr[i][2]+arr[i][3]; // 给总分定义
arr[i][arr[i].length] = zf/classs.length; //每循环一次在这个数组后面添加一个(总分除以这个新的数组的长度得出平均分)数组元素
arr[i][arr[i].length] = zf; ////每循环一次在这个数组后面添加一个元素(总分)数组元素
}
console.log(arr);
// 下降排序 按照总分排序
for(var i =0;i<arr.length;i++) {
for(var k = 0; k < arr.length-i-1; k++){
if(arr[k+1][5]>arr[k][5]){
var s = arr[k];
arr[k]=arr[k+1]; //从这开始交换位置
arr[k+1]=s;
}
}
}
//加入到表格中
var str = `<table width="50%" border="1px"><tr>
<tr>
<th>学号</th>
<th>语文</th>
<th>数学</th>
<th>英语</th>
<th>平均分</th>
<th>总分</th>
</tr>`;
for(var i = 0; i<arr.length; i++){
str += `<tr>`;
for(var j = 0 ; j<arr[i].length;j++){
str += '<td>'+arr[i][j]+'</td>';
}
str += `</tr>`;
}
str += `</table>`;
console.log(arr);
document.write(str);
}
</script>
一个班六个人,学号语文、数学、英语,接收成绩(不接受学号),输出学号成绩,总分、平均分,按总分排序(原生JS)的更多相关文章
- c#部分---输入班级人数,输入语文数学英语成绩,打印语文前两名,数学后两名,英语平均分
1.开始收集输入项 2.用冒泡排序,统计语文成绩,并附带把语数英三门课全排列 3.数学成绩排序,附带把三门课全排序‘ 4.最后算英语的平均分:
- sqlserver 行转列 语文,数学,物理,化学
数据库查询行转列 1.原数据库值 stdname stdsubject result 张三 语文 张三 数学 张三 物理 李四 语文 李四 数学 李四 物理 李四 化学 李四 化学 2.要得到如下表 ...
- 当向计算机中存入一个float类型的数值2.2 后,在从计算机中读出输出,这时2.2 的值已经发生了变化(转)
problom : 'f1' value hava been changed when output. reason : the binary repersentation of 2.2f is : ...
- 原生js写的一个弧形菜单插件
弧形菜单是一种半弧式或者全弧形菜单,是一种不同于传统横向或者竖向菜单形式的菜单.最近在网上看到好多人写出了这种效果,于是也尝试自己写了一个. 实现方式:原生态js 主要结构: 1.参数合并 var d ...
- 使用原生JS实现一个风箱式的demo,并封装了一个运动框架
声明,该DEMO依托于某个培训机构中,非常感谢这个培训结构.话不多说,现在开始改demo的制作. 首先,在前端的学习过程中,轮播图是我们一定要学习的,所以为了更加高效的实现各种轮播图,封装了一个运动的 ...
- 原生JS中apply()方法的一个值得注意的用法
今天在学习vue.js的render时,遇到需要重复构造多个同类型对象的问题,在这里发现原生JS中apply()方法的一个特殊的用法: var ary = Array.apply(null, { &q ...
- 使用原生js与jQuery分别实现一个简单的tab页签
tab页签通常适用于空间有限而内容较多同时兼顾页面美观度不给用户一种信息过量视觉疲劳的情形.使用面非常广,下面我们用两种方法简单实现之. 首先,构建页面元素.页签的可点击部分我们通常用列表来承载,包括 ...
- 一个简单用原生js实现的小游戏----FlappyBird
这是一个特别简单的用原生js实现的一个小鸟游戏,比较简单,适合新手练习 这是html结构 <!DOCTYPE html><html lang="en">&l ...
- 4.写一个控制台应用程序,接收一个长度大于3的字符串,完成下列功能: 1)输出字符串的长度。 2)输出字符串中第一个出现字母a的位置。 3)在字符串的第3个字符后面插入子串“hello”,输出新字符串。 4)将字符串“hello”替换为“me”,输出新字符串。 5)以字符“m”为分隔符,将字符串分离,并输出分离后的字符串。 */
namespace test4 {/* 4.写一个控制台应用程序,接收一个长度大于3的字符串,完成下列功能: 1)输出字符串的长度. 2)输出字符串中第一个出现字母a的位置. 3)在字符串的第3个字符 ...
随机推荐
- P2528 [SHOI2001]排序工作量之新任务
P2528 [SHOI2001]排序工作量之新任务 题目描述 假设我们将序列中第i件物品的参数定义为Ai,那么排序就是指将A1,…,An从小到大排序.若i<j且Ai>Aj,则<i ...
- 使用SharpZipLib实现zip压缩
使用国外开源加压解压库ICSharpCode.SharpZipLib实现加压,该库的官方网站为http://www.icsharpcode.net/OpenSource/SharpZipLib/D ...
- ABP Linq 扩展的 WhereIf 查询内部实现
public static class QueryableExtensions { public static IQueryable<T> WhereIf<T>(this IQ ...
- Dubbo + Kryo 实现高速序列化
Dubbo 中的序列化 Dubbo RPC 是 Dubbo 体系中最核心的一种高性能.高吞吐量的远程调用方式,可以称之为多路复用的 TCP 长连接调用: 长连接:避免了每次调用新建 TCP 连接,提高 ...
- jquery.artDialog.source.js学习
1 关键的对象关系art = jQuery = $function artDialog() {...}artDialog.fn = artDialog.prototype = artDialog.fn ...
- Activiti常用类介绍
为什么要使用工作流? 传统的设计在流程发生变化时的弊端: 1. 流程相关的属性和业务对象的属性,都放到了业务对象中. 2. 流程相关的逻辑和业务逻辑,都放到的业务逻辑中 常用类 ProcessEngi ...
- 华为手机honor5c root 方法备份
1.首先获取官方解锁码: https://www.emui.com/cn/unlock_detail 2.用 adb 执行 root 命令,如下: 498 adb devies 499 adb d ...
- CF961F k-substring
题意:给你一个字符串(sl<=1e6),问每一个起点到1和终点到sl距离相等的子串的最长不等于串长的border. 标程: #include<cstdio> #include< ...
- GROUP方法也是连贯操作方法之一
GROUP方法也是连贯操作方法之一,通常用于结合合计函数,根据一个或多个列对结果集进行分组 . group方法只有一个参数,并且只能使用字符串. 例如,我们都查询结果按照用户id进行分组统计: $th ...
- 模拟——1031D
/* dp[i][j]表示到[i,j]的权值 cnt[i,j]表示到[i,j]还可以使用的修改的次数 cnt[i,j]=max(cnt[i-1,j],cnt[i,j-1]) 如果mp[i,j]!='a ...