操作一个二维数据
admin
2023-07-31 01:49:07
0

问题

定义一个20*5的二维数组,用来存储某班级20位学员的5门课的成绩;这5门课按存储顺序依次为:core C++,coreJava,Servlet,JSP和EJB。

(1)循环给二维数组的每一个元素赋0~100之间的随机整数。

(2)按照列表的方式输出这些学员的每门课程的成绩。

(3)要求编写程序求每个学员的总分,将其保留在另外一个一维数组中。

(4)要求编写程序求所有学员的某门课程的平均分。

解决(python)

#! /usr/bin/env python
#coding:utf-8

from __future__ import division
import random


def score(score_list,course_list,student_num):
    course_num = len(course_list)

    every_score = [[score_list[j][i] for j in range(course_num)] for i in range(student_num)]

    every_total = [sum(every_score[i]) for i in range(student_num)]

    ave_course = [sum(score_list[i])/len(score_list[i]) for i in range(len(score_list))]

    return (every_score,every_total,ave_course)

if __name__==\"__main__\":

    course_list = [\"C++\",\"Java\",\"Servlet\",\"JSP\",\"EJB\"]
    student_num = 20

    score_list = [[random.randint(0,100) for i in range(student_num)] for j in range(len(course_list))]
    for i in range(len(course_list)):
        print \"score of every one in %s:\"%course_list[i]
        print score_list[i]

    every_score,every_total,ave_one_course = score(score_list,course_list,student_num)
    print \"\\n\"
    print \"NEXT IS EVERY ONE SCORE IN EVERY COURSE:\"
    for name in course_list:
        print name,
    print \"\\t\"
    print every_score
    print \"\\n\"
    print \"every one all score:\\t\",every_total
    print \"every course of average score:\\t\",ave_one_course

qiwsir#gmail.com (# to @)

解法 (racket 5.2.1)

#lang racket

(define (2d-list)
  (let*
    ([rand-100 (lambda () (random 101))]
     [nth-picker (lambda (n) (lambda (l) (list-ref l n)))]
     [average (lambda (number-list) (exact->inexact (/ (apply + number-list) (length number-list))))]
     [course-list (list \"coreC++\" \"coreJava\" \"Servlet\" \"JSP\" \"EJB\")]
     [score-list (for/list ([i 20]) (for/list ([j 5]) (rand-100)))]
     [score-by-course-list (for/list ([i 5]) (list ((nth-picker i) course-list) (map (nth-picker i) score-list)))]
     [score-by-student-list (for/list ([i 20]) (list-ref score-list i))]
     [total-by-student-list (for/list ([i 20]) (apply + (list-ref score-list i)))]
     [average-by-course-list (for/list ([i 5]) (list ((nth-picker i) course-list) (average (map (nth-picker i) score-list))))])
    (for ([i 5]) 
      (display \"score of every one in \")
      (displayln (first ((nth-picker i) score-by-course-list)))
      (displayln (second ((nth-picker i) score-by-course-list))))
    (displayln \"\")
    (displayln \"NEXT IS EVERY ONE SCORE IN EVERY COURSE: \")
    (displayln course-list)
    (for ([i 10]) 
      (displayln (list-ref score-by-student-list i)))
    (displayln \"\")
    (displayln \"every one all score: \")
    (displayln total-by-student-list)
    (displayln \"\")
    (displayln \"every course of average score: \")
    (displayln average-by-course-list)))

; 调用函数, 正常时应输出类似如下结果
;score of every one in coreC++
;(12 58 60 28 78 23 34 83 19 83 78 26 51 94 93 74 53 89 8 23)
;... ...
;NEXT IS EVERY ONE SCORE IN EVERY COURSE: 
;(coreC++ coreJava Servlet JSP EJB)
;(12 49 75 88 68)
;(58 78 6 88 81)
;... ...
;every one all score: 
;(292 311 370 241 289 250 254 258 147 232 271 170 224 248 317 286 246 270 186 212)
;
;every course of average score: 
;((coreC++ 53.35) (coreJava 53.9) (Servlet 51.95) (JSP 49.6) (EJB 44.9))
(2d-list)

相关内容

热门资讯

Mobi、epub格式电子书如... 在wps里全局设置里有一个文件关联,打开,勾选电子书文件选项就可以了。
定时清理删除C:\Progra... C:\Program Files (x86)下面很多scoped_dir开头的文件夹 写个批处理 定...
scoped_dir32_70... 一台虚拟机C盘总是莫名奇妙的空间用完,导致很多软件没法再运行。经过仔细检查发现是C:\Program...
500 行 Python 代码... 语法分析器描述了一个句子的语法结构,用来帮助其他的应用进行推理。自然语言引入了很多意外的歧义,以我们...
小程序支付时提示:appid和... [Q]小程序支付时提示:appid和mch_id不匹配 [A]小程序和微信支付没有进行关联,访问“小...
pycparser 是一个用... `pycparser` 是一个用 Python 编写的 C 语言解析器。它可以用来解析 C 代码并构...
微信小程序使用slider实现... 众所周知哈,微信小程序里面的音频播放是没有进度条的,但最近有个项目呢,客户要求音频要有进度条控制,所...
65536是2的几次方 计算2... 65536是2的16次方:65536=2⁶ 65536是256的2次方:65536=256 6553...
Apache Doris 2.... 亲爱的社区小伙伴们,我们很高兴地向大家宣布,Apache Doris 2.0.0 版本已于...
项目管理和工程管理的区别 项目管理 项目管理,顾名思义就是专注于开发和完成项目的管理,以实现目标并满足成功标准和项目要求。 工...