ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

求平均成绩 矩阵数据处理 【循环处理 二维数组】

求平均成绩 矩阵数据处理 【循环处理 二维数组】 数据结构专栏小知识总结分享题目历练场功能包与集合类介绍java EEAgent大模型今天和大家一起分享一道基础的算法题目题目来源 HDOJ题目这个题目本省不复杂 但是对于新手朋友存在很多坑点 我认为对于二维数组和循环逻辑的理解有一个较为深入的考察。#includeiostreamusingnamespacestd;/* 2 3 10 20 30 56 4 30 30.00 45.00 33.00 12.00 30.00 0 *///复习intmain(){intn,m;intarr[51][6];doublesa[51];doubleca[6];intcount;while(cinnm){//反复输入//存进数据for(inti0;in;i){for(intj0;jm;j){cinarr[i][j];}}// 每一位同学的平均成绩 n 固定 加和mfor(inti0;in;i){sa[i]0;// 初始化每一位同学平均成绩for(intj0;jm;j){sa[i]arr[i][j];}sa[i]/m;//每一位学生的平均成绩计算完成}// 每一个学科的平均成绩 m 固定 加和nfor(inti0;im;i){ca[i]0;// 初始化每一学科的平均成绩for(intj0;jn;j){ca[i]arr[j][i];// 注意是i 表示列 变化是行的数据}ca[i]/n;//每一位学生的平均成绩计算完成}//遍历数组 进行判断符合条件的数据count0;for(inti0;in;i){intsum0;for(intj0;jm;j){sum(arr[i][j]ca[j]);//某位同学的第j门成绩是不是大于等于第i门课程的平均成绩}//此时一个同学的数据已经便利完成if(summ)count;}// 遍历打印 每一个同学的平均成绩for(inti0;in;i){//神之一手 处理空格if(i!0){cout ;}printf(%.2f,sa[i]);}coutendl;// 遍历打印 每一个学科的平均成绩for(inti0;im;i){//神之一手 处理空格if(i!0){cout ;}printf(%.2f,ca[i]);}coutendl;coutcountendl;}return0;}题目总结这道 HDOJ 2023 题目虽然基础但考察了多个关键知识点值得新手朋友认真复盘二维数组的存储与遍历使用arr[51][6]存储 n 位同学、m 门课程的成绩需要理解行同学与列课程的对应关系。双重循环的嵌套逻辑计算每位同学的平均成绩时外层循环是同学、内层循环是课程计算每门课程的平均成绩时外层循环是课程、内层循环是同学行列互换是本题最大的坑点。条件统计判断每位同学是否所有科目都达到该科目的平均分需要逐门比较并累加计数。这道题虽然代码不长但完整覆盖了二维数组、循环嵌套、格式化输出等基础能力。建议新手朋友先手写一遍行列遍历的过程理清下标含义再独立实现一遍重点检查学科平均分的计算最后对照标准输出验证格式是否正确。掌握这道题对后续更复杂的矩阵类题目会很有帮助。我是Dylan无限进步
返回列表