开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 4400|回复: 3
收起左侧

[C#作业] 第十二天作业

[复制链接]
发表于 2019-4-16 16:09:02 | 显示全部楼层 |阅读模式   广东省揭阳市

今日学习内容

12.1 异常处理基础

12.2 自定义异常 应该如何处理异常

12.3 Array 多维数组 锯齿数组的使用 内存分配原理 值拷贝及引用拷贝

今日作业

  1. 异常处理有什么好处(描述)?

  2. 异常处理可以捕获程序中的异常,因此我们应该在任何地方使用它,是否正确(为什么)?

  3. 求3*4数组中大于等于平均值的所有数组元素的和,并统计满足条件元素(数组如下)

    int[,] numbers = {
       { 3,5,7,9 },
       { 2,4,6,8 },
       { 13,22,7,9}
    };
  4. 描述一下值类型数组 与 引用类型数组 在拷贝时有何不同?

发表于 2019-6-2 23:42:18 | 显示全部楼层   湖南省长沙市

今日作业
1.异常处理有什么好处(描述)?
程序出错了,不会直接退出,写出错误日志,告知客户问题出在哪里,如何修改。
2.异常处理可以捕获程序中的异常,因此我们应该在任何地方使用它,是否正确(为什么)?
不正确,try语句块影响效率,与程序界面、程序逻辑打交道的时候,需要处理异常,我们应该在可能出问题的代码块附近用它,并针对性的告知用户解决方案,或者从代码逻辑方面排查异常。
3.求3*4数组中大于等于平均值的所有数组元素的和,并统计满足条件元素(数组如下)
int[,] numbers = {
{ 3,5,7,9 },
{ 2,4,6,8 },
{ 13,22,7,9}
};
4.描述一下值类型数组 与 引用类型数组 在拷贝时有何不同?
值类型数组拷贝直接拷贝的是值,拷贝完成以后是独立的两个数组,两个数组值互不干扰;
引用类型数组拷贝的是引用,两个数组指向的地址还是一样的,数据是一样的,可以被修改;

using System;
using System.Text;

namespace vscodeprogect
{
    class Program
    {
        static void Main()
        {

            int[,] numbers = {
                { 3,5,7,9 },
                { 2,4,6,8 },
                { 13,22,7,9}
            };

            int x , y,z;
            z = numbers.Rank;
            x = numbers.GetLength(0);
            y = numbers.GetLength(1);
            System.Console.WriteLine($"这是一个{x}行{y}列的{z}维数组");

            int sum = 0 ;
            for (int i = 0; i < x; i++)
            {
                for (int j = 0; j < y; j++)
                {
                    sum += numbers[i,j];
                }
            }
            double ave = sum / (x*y);
            System.Console.WriteLine($"累计和是{sum}平均数是{ave}");

            sum = 0 ;
            for (int i = 0; i < x; i++)
            {
                for (int j = 0; j < y; j++)
                {
                    if(numbers[i,j]>=ave)
                    {
                        System.Console.WriteLine($"满足要求的元素有:{numbers[i,j]}");
                        sum += numbers[i,j];
                    }
                }
            }
            System.Console.WriteLine($"满足要求的所有数组元素的和是{sum}");
    }

}
}
回复 支持 反对

使用道具 举报

结帖率:100% (1/1)
发表于 2019-5-4 09:45:10 | 显示全部楼层   江苏省南京市
1、异常处理有什么好处(描述)?
解决一些你的程序无法掌控 但是又需要的部分,预防程序崩溃;写错误日志。

2、异常处理可以捕获程序中的异常,因此我们应该在任何地方使用它,是否正确(为什么)?
不正确,在任何有可能产生无法预知异常的地方使用。

3、求3*4数组中大于等于平均值的所有数组元素的和,并统计满足条件元素(数组如下)
int[,] numbers = {
             { 3,5,7,9 },
             { 2,4,6,8 },
             { 13,22,7,9}
             };
int sum=0;//不加=0会报错
for (int i=0; i < numbers.GetLength(0); i++) {
        for (int j = 0; j < numbers.GetLength(1); j++)
          sum += numbers[i, j];
}
double ave = sum/i/j;
sum=0;
int[] numberOver = new int[i*j];
k=0;
for (int i=0; i < numbers.GetLength(0); i++) {
        for (int j = 0; j < numbers.GetLength(1); j++)
                if(numbers[i, j] >= ave){
                        sum += numbers[i, j];
                        numberOver[k] = numbers[i, j];
                        k++;
                }  
}
for (int i = 0; i < numberOver.Length(); i++)
          Console.WriteLine(numberOver[i]);;
Console.WriteLine($"和为:{sum}");
Console.Read();

4、描述一下值类型数组 与 引用类型数组 在拷贝时有何不同?
其实是拷贝地方相同只是该地方存的东西不一样罢了,数值类型变量存的是数据,引用类型变量存的是数据地址。

评分

参与人数 1好评 +1 精币 +2 收起 理由
老郭 + 1 + 2 很赞同,谢谢!

查看全部评分

回复 支持 反对

使用道具 举报

发表于 2019-4-17 14:29:06 | 显示全部楼层   江苏省扬州市

1、异常处理有什么好处(描述)?
处理可预测不可避免的程序错误;方便代码阅读和程序调试;告诉用户错误;预防程序崩溃;写错误日志。

2、异常处理可以捕获程序中的异常,因此我们应该在任何地方使用它,是否正确(为什么)?
不正确。有些异常可以通过完善代码逻辑解决。。

3、求3*4数组中大于等于平均值的所有数组元素的和,并统计满足条件元素(数组如下)

//先转一维,再比较
             int[,] numbers = {
             { 3,5,7,9 },
             { 2,4,6,8 },
             { 13,22,7,9}
             };

            int[] arr1 = new int[12];
         
            for (int i=0; i < 3; i++) {
                for (int j = 0; j < 4; j++)
                {
                  arr1[i * 4  + j] = numbers[i, j];
                }

            }
            double ave = arr1.Average();
            int ave1 = (int)Math.Round(ave,0);
            int sum = 0;
            Console.Write("大于等于平均值的所有数组元素:");
            for (int i = 0; i < 12; i++)
            {
                if (arr1[i] >= ave1)
                {
                    sum += arr1[i];
                    Console.Write($"{arr1[i]}   ");
                }
            }

            Console.WriteLine();
            Console.WriteLine($"和为:{sum}");
            Console.Read();
           
              
            // 大于等于平均值的所有数组元素:9   8   13    22  9
            // 和为: 61


4、描述一下值类型数组 与 引用类型数组 在拷贝时有何不同?
值类型复制value 新老数据互不干扰,地址不同
引用类型复制地址 一个数组value改变时,另一数组value也会改变

评分

参与人数 1精币 +2 收起 理由
老郭 + 2 很赞同,谢谢!

查看全部评分

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表