<C#任务导引教程>练习六
//54五名学生参加了两门课程的考试,试输入成绩,统计出各科的最高分,最低分,平均分及每个学生的平均成绩(要求用对话框显示成绩统计结果)
using System;
using System.Windows.Forms;
class Program
{
static void Main()
{
const int N = 5;
int[,] score = new int[N, 2];//score二维数组
float[] ang = new float[N];//ang二维数组
input(score);//输入函数
avgAll(score, ang);//
Console.WriteLine("\t课程1\t课程2\t平均分:");
Console.WriteLine(showScore(score, ang));
Console.WriteLine( );
int x1, x2;
minmum(score, out x1, out x2);
Console.WriteLine("\n最低分: " + x1 + "\t" + x2);
maxmum(score, out x1, out x2);
Console.WriteLine("\n最高分: " + x1 + "\t" + x2);
float a1, a2;
average(score, out a1, out a2);
Console.WriteLine("\n平均分: " + a1 + "\t" + a2);
}
static void input(int[ , ] score)
{
string str;
int n = 0;
Console.WriteLine("请输入每个学生的各科成绩\n");
for(int i=0;i<score.GetLength(0);i++)
{
for (int j = 0; j < score.GetLength(1); j++)
{
do
{
Console.Write("学生{0}课程{1}成绩\n", i + 1, j + 1);
str = Console.ReadLine();
if (str == " ")
continue;
try
{
n = int.Parse(str);
}
catch//检查异常
{
Console.WriteLine("只能输入数字型数据");
Application.Exit();
}
} while (n < 0 || n > 100);
score[i,j]=n;
}
}
}
static string showScore(int[ , ]score,float[ ]ang)//使用avgAll()函数
{
string str = " ";
for (int i = 0; i < score.GetLength(0); i++)
{
str += "\n学生" + (i + 1) + ": ";
str += score[i, 0] + "\t" + score[i, 1] + "\t" + ang[i];
}
return str;
}
static void minmum(int[,] score, out int x1, out int x2)
{
int an = score.GetLength(0);
x1 = score[0, 0];
x2 = score[0, 1];
for (int i = 1; i < an; i++)
if (score[i, 0] < x1)
x1 = score[i, 0];
for (int i = 1; i < an; i++)
{
if (score[i, 1] < x2)
x2 = score[i, 1];
}
}
static void maxmum(int[,] score, out int x1, out int x2)
{
int an = score.GetLength(0);
x1 = score[0, 0];
x2 = score[0, 1];
for (int i = 1; i < an; i++)
if (score[i, 0] > x1)
x1 = score[i, 0];
for (int i = 1; i < an; i++)
if (score[i, 1] > x2)
x2 = score[i, 1];
}
static void average(int[,] score, out float a1, out float a2)
{
int sum1 = 0, sum2 = 0;
int an = score.GetLength(0);
for (int i = 0; i < an; i++)
sum1 += score[i, 0];
for (int i = 0; i < an; i++)
sum2 += score[i, 1];
a1 = sum1 * 1.0f / an;
a2 = sum2 * 1.0f / an;
}
static void avgAll(int[,] score, float[] ang)//avgAll()函数
{
int nj = score.GetLength(1);
for(int i=0;i<score.GetLength(0);i++)
{
int sum = 0;
for (int j = 0; j < nj; j++)
sum += score[i, j];
ang[i] = sum * 1.0f / nj;
}
}
}
<C#任务导引教程>练习六的更多相关文章
- Senparc.Weixin.MP SDK 微信公众平台开发教程(六):了解MessageHandler
上一篇<Senparc.Weixin.MP SDK 微信公众平台开发教程(五):使用Senparc.Weixin.MP SDK>我们讲述了如何使用Senparc.Weixin.MP SDK ...
- Docker入门教程(六)另外的15个Docker命令
Docker入门教程(六)另外的15个Docker命令 [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第六篇,继续介绍Docker命令.之前的第二篇文章 ...
- 无废话ExtJs 入门教程十六[页面布局:Layout]
无废话ExtJs 入门教程十六[页面布局:Layout] extjs技术交流,欢迎加群(201926085) 首先解释什么是布局: 来自百度词典的官方解释:◎ 布局 bùjú: [distributi ...
- HMM 自学教程(六)维特比算法
本系列文章摘自 52nlp(我爱自然语言处理: http://www.52nlp.cn/),原文链接在 HMM 学习最佳范例,这是针对 国外网站上一个 HMM 教程 的翻译,作者功底很深,翻译得很精彩 ...
- Ocelot简易教程(六)之重写配置文件存储方式并优化响应数据
本来这篇文章在昨天晚上就能发布的,悲剧的是写了两三千字的文章居然没保存,结果我懵逼了.今天重新来写这篇文章.今天我们就一起来探讨下如何重写Ocelot配置文件的存储方式以及获取方式. 作者:依乐祝 原 ...
- [转]PostgreSQL教程(十六):系统视图详解
这篇文章主要介绍了PostgreSQL教程(十六):系统视图详解,本文讲解了pg_tables.pg_indexes.pg_views.pg_user.pg_roles.pg_rules.pg_set ...
- iOS 11开发教程(六)iOS11Main.storyboard文件编辑界面
iOS 11开发教程(六)iOS11Main.storyboard文件编辑界面 在1.2.2小节中提到过编辑界面(Interface builder),编辑界面是用来设计用户界面的,单击打开Main. ...
- Netty4.x中文教程系列(六) 从头开始Bootstrap
Netty4.x中文教程系列(六) 从头开始Bootstrap 其实自从中文教程系列(五)一直不知道自己到底想些什么.加上忙着工作上出现了一些问题.本来想就这么放弃维护了.没想到有朋友和我说百度搜索推 ...
- Photoshop入门教程(六):通道
学习心得:当大部分人听到通道.心里可能会有一种很害怕的感觉,因为“通道”并不像“图层”这样易于理解,望而生畏.”通道“的本质其实是存储图片的信息,把一张图片比作一个为网站,那么通道就是网站的后台,存储 ...
随机推荐
- 理解ASP.NET Core - 配置(Configuration)
注:本文隶属于<理解ASP.NET Core>系列文章,请查看置顶博客或点击此处查看全文目录 配置提供程序 在.NET中,配置是通过多种配置提供程序来提供的,包括以下几种: 文件配置提供程 ...
- 地心地固坐标系(ECEF)与站心坐标系(ENU)的转换
目录 1. 概述 2. 原理 2.1. 平移 2.2. 旋转 2.3. 总结 3. 实现 4. 参考 1. 概述 我在<大地经纬度坐标与地心地固坐标的的转换>这篇文章中已经论述了地心坐标系 ...
- Spring自动装配歧义性笔记
Spring自动装配歧义性笔记 如果系统中存在两个都实现了同一接口的类,Spring在进行@Autowired自动装配的时候,会选择哪一个?如下: // 一下两个类均被标记为bean @Compone ...
- vue3 element-plus 配置json快速生成table列表组件,提升生产力近500%(已在公司使用,持续优化中)
️本文为博客园首发文章,未获授权禁止转载 大家好,我是aehyok,一个住在深圳城市的佛系码农♀️,如果你喜欢我的文章,可以通过点赞帮我聚集灵力️. 个人github仓库地址: https:gith ...
- 分布式应用开发 | SpringBoot+dubbo+zookeeper实现服务注册发现 | 远程服务调用
前言 通过新建两个独立服务--提供者.消费者,模拟两个独立分布的应用,通过使用dubbo+zookeeper来实现远程服务调用. 目录 项目搭建 provider-server consumer-se ...
- 2021-5-15 vj补题
C - Win or Freeze CodeForces - 151C 题目内容: You can't possibly imagine how cold our friends are this w ...
- 【.Net vs Java? 】 看一看二者的类有多像?
1. 包(Package).命名空间(NameSpace) 1.1 概念 在Java中常用的是包(Package),较少提到NameSpace的概念.Java官方文档中这样说: 为了使类型更易于查找和 ...
- 对epoll机制的学习理解v1
epoll机制 wrk用非阻塞多路复用IO技术创造出大量的连接,从而达到很好的压力测试效果.epoll就是实现IO多路复用的关键. 本节是对epoll的本质的学习总结,进一步的参考资料为: <深 ...
- 《python编程:从入门到实践》课后习题及答案
转载: <Python编程:从入门到实践>课后习题及答案-码农之家 (xz577.com) <Python编程:从入门到实践>课后习题及答案 - 信德维拉 - 博客园 (cnb ...
- python常用内置函数(转载)
1. 和数字相关 1.1 数据类型 1.2 进制转换 1.3 数学运算 2. 和数据结构相关 2.1 序列 2.2 数据集合 2.3 相关内置函数 3. 和作用域相关 4. 和迭代器生成器相关 5. ...