C# 1,数字查重,并返回数字序号 2,求4行5列矩阵中的最大值的行列数 3,使用while语句求用户输入的数字区间的奇数和

您所在的位置:网站首页 找出4*5矩阵中值最小和最大元素 C# 1,数字查重,并返回数字序号 2,求4行5列矩阵中的最大值的行列数 3,使用while语句求用户输入的数字区间的奇数和

C# 1,数字查重,并返回数字序号 2,求4行5列矩阵中的最大值的行列数 3,使用while语句求用户输入的数字区间的奇数和

2024-07-16 20:23| 来源: 网络整理| 查看: 265

程序包含功能: 1.定义一个内容为10的整数数组(无重复),内容自拟,用户输入一个数值,找出这个数值在本数值中的序号,如果没有输出“不存在” 2.求4行5列矩阵中的最大值的行列数 3.使用while语句求用户输入的数字区间的奇数和 要求: 用户选择指定功能进行实现,例如:用户键入2,选择求最大值行列功能,那么只实现该功能,实现后返回选择功能界面,按特定键(某一个按键比如“q”)。

主函数的方法调用:因为需要做到方法选择循环,我第一个想到的是用for循环嵌套swich case 进行选择循环,形式如下:

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 方法的循环选择测试 { class Program { static void Main(string[] args) { for (; ; )//因为在C#中for循环可以空,这样就实现了无限的循环 { Console.WriteLine("1,方法一"); Console.WriteLine("2,方法二"); Console.WriteLine("3,方法三"); Console.WriteLine("按0退出"); Console.WriteLine("请告诉我你的选择:");//以上是给用户的选择提示 int XZ=Convert.ToInt32(Console.ReadLine());//设置选择变量,通过变量,告诉程序用户的选择 if (XZ == 0) break;//这个break是用来结束for循环,因为空的for循环为无限循环,所以需要一个条件来结束循环; else switch(XZ) { case 1: NUM1();//方法调用,case与break之间可以写多行代码,并非只能一步调用 break; case 2: NUM2(); break; case 3: NUM3(); break; default : Console.WriteLine("请选择正确的序列号!"); break; } Console.WriteLine();//这步空行是为了分隔两次选择; } } static void NUM1()//调用函数 { Console.WriteLine("我是方法一!"); } static void NUM2() { Console.WriteLine("我是方法二!"); } static void NUM3() { Console.WriteLine("我是方法三"); } } }

1.定义一个内容为10的整数数组(无重复),内容自拟,用户输入一个数值,找出这个数值在本数值中的序号,如果没有输出“不存在”,代码如下:

static public int FindNum(int a)//1.定义一个内容为10的整数数组(无重复),内容自拟,用户输入一个数值,找出这个数值在本数值中的序号,如果没有输出“不存在” { int[] arry = new int[10] { 0, 1, 5, 4, 98, 65, 48, 75, 3, 48 };//此数组为程序内置数组 for (int i = 0; i < arry.Length; i++) { if (arry[i] == a)//判断是否相同,若相同则返回该位置; return i + 1;//因为C#数组角标从0开始,所以返回的位置需要加1; } return -1;//若没有匹配项则返回-1,表示不存在; }

2.求4行5列矩阵中的最大值的行列数,代码段如下:

static public int[] Max(int[,] a)//2.求4行5列矩阵中的最大值的行列数 { int max = a[0, 0];//初步设置最大值为数组的第一个位置的数字,后面比较中再进行修改 int x = 0, y = 0;//x用来记录行数,y用来记录列数; for (int i = 0; i < a.GetLength(0); i++)//遍历行 { for (int j = 0; j < a.GetLength(1); j++)//遍历列 { if (a[i, j] > max)//判断最大值 { max = a[i, j];//若if为真,则修改最大值,并记录其行列数 x = i + 1; y = j + 1; } } } int[] b = new int[3] { max, x, y };//因为所求结果需要返回三个值,最简单的方法就是把这三个数付给数组,并把数组返回; return b; }

3.使用while语句求用户输入的数字区间的奇数和(因为为了练习才用的while,用for更简单),代码段如下:

static public int Add(int x, int y)//3.使用while语句求用户输入的数字区间的奇数和 { int add = 0;//设置累加和 while (x < y) { if (x % 2 != 0)//x对2取余数,若余数不为0,则为奇数 add += x;//奇数累加 x += 1;//因为x与y之间的每个数都要判断,故对当前x进行操作需要加1; } return add;//返回累加和; //还有一个思路,我没写:先判断初始x是否为奇数,若是奇数则累加,并对x加2,因为初始的x若为奇数,则其加2也是奇数,若初始x是偶数,则加1,然后累加,之后的x在假2,在累加;(可能我说的不清楚,理解万岁) }

 

下面是这个小程序的完整代码,没怎么写注释,理解这看看吧,很简单的:

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace _17第二期暑假作业1 { class Program { static void Main(string[] args) {//函数调用以下方法: //1.定义一个内容为10的整数数组(无重复),内容自拟,用户输入一个数值,找出这个数值在本数值中的序号,如果没有输出“不存在” //2.求4行5列矩阵中的最大值的行列数 //3.使用while语句求用户输入的数字区间的奇数和 int RW; for (; ; ) { Console.WriteLine("1.有十个数放入数组中,用户输入一个数值,找出这个数值在本数值中的序号,如果没有输出“不存在”"); Console.WriteLine("2.求4行5列矩阵中的最大值的行列数"); Console.WriteLine("3.使用while语句求用户输入的数字区间的奇数和"); Console.WriteLine("按“0”退出程序"); Console.WriteLine("请选择任务:"); RW =Convert.ToInt32(Console.ReadLine()); if (RW == 0) break; else { switch (RW) { case 1://1.定义一个内容为10的整数数组(无重复),内容自拟,用户输入一个数值,找出这个数值在本数值中的序号,如果没有输出“不存在” Console.WriteLine("请输入要校验的数字"); int a = Convert.ToInt32(Console.ReadLine()); int T = FindNum(a); if (T >=0) Console.WriteLine("{0}在第{1}个位置",a,T); else Console.WriteLine("不存在"); break; case 2://2.求4行5列矩阵中的最大值的行列数 int[,] arry=new int[4,5]; Console.WriteLine("请输入整数数组内容:"); for (int i = 0; i < arry.GetLength(0);i++ ) { for (int j = 0; j < arry.GetLength(1); j++) { int b = Convert.ToInt32(Console.ReadLine()); arry[i, j] = b; } } int[] brry = Max(arry); Console.WriteLine("最大值是"+brry[0]+"处于第"+brry[1]+"行,第"+brry[2]+"列"); break; case 3://3.使用while语句求用户输入的数字区间的奇数和 Console.WriteLine("请输入数字区间下限:"); int x = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("请输入区间上限:"); int y = Convert.ToInt32(Console.ReadLine()); int add = Add(x, y); Console.WriteLine("区间内奇数和为:"+add); break; default: Console.WriteLine("输入错误!请重新输入!"); break; } } Console.WriteLine(); } } #region 数字匹配 static public int FindNum(int a)//1.定义一个内容为10的整数数组(无重复),内容自拟,用户输入一个数值,找出这个数值在本数值中的序号,如果没有输出“不存在” { int[] arry = new int[10] { 0, 1, 5, 4, 98, 65, 48, 75, 3, 48 }; for (int i = 0; i < arry.Length; i++) { if (arry[i] == a) return i + 1; } return -1; } #endregion #region 最大值 static public int[] Max(int[,] a)//2.求4行5列矩阵中的最大值的行列数 { int max = a[0, 0];//初步设置最大值为数组的第一个位置的数字,后面比较中再进行修改 int x = 0, y = 0;//x用来记录行数,y用来记录列数; for (int i = 0; i < a.GetLength(0); i++)//遍历行 { for (int j = 0; j < a.GetLength(1); j++)//遍历列 { if (a[i, j] > max)//判断最大值 { max = a[i, j];//若if为真,则修改最大值,并记录其行列数 x = i + 1; y = j + 1; } } } int[] b = new int[3] { max, x, y };//因为所求结果需要返回三个值,最简单的方法就是把这三个数付给数组,并把数组返回; return b; } #endregion #region 奇数和 static public int Add(int x, int y)//3.使用while语句求用户输入的数字区间的奇数和 { int add = 0;//设置累加和 while (x < y) { if (x % 2 != 0)//x对2取余数,若余数不为0,则为奇数 add += x;//奇数累加 x += 1;//因为x与y之间的每个数都要判断,故对当前x进行操作需要加1; } return add;//返回累加和; //还有一个思路,我没写:先判断初始x是否为奇数,若是奇数则累加,并对x加2,因为初始的x若为奇数,则其加2也是奇数,若初始x是偶数,则加1,然后累加,之后的x在假2,在累加;(可能我说的不清楚,理解万岁) } #endregion } }

本人哔哩哔哩:https://www.bilibili.com/read/cv7380068



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3