1. //题目:求两个数的最大值 (求三个数最大值及更多值的最大值)
求最大值
1 static void Main(string[] args) 2 { 3 //题目:求两个数的最大值 (求三个数最大值及更多值的最大值) 4 int[] sss = { 200, 120, 90, 180, 110 }; 5 int a = 10; 6 int b = 0; 7 int c = 99; 8 int d = 1000; 9 int max = Max(Max(a, b), c);//用两个大小的比较来比较,求abc的最大值 10 int max2 = Max(a, b, c, d);//是可变变量比较,求abcd的最大值 11 int max3 = Max(sss);//求数组sss中所有元素的最大值 12 Console.WriteLine(max); 13 Console.WriteLine(max2); 14 Console.WriteLine(max3); 15 Console.ReadKey(); 16 17 } 18 //多个值比较大小的方法,使用了可变变量(关键字 params) 19 static int Max(params int[] i) 20 { 21 int max = 0; 22 foreach (int item in i) 23 { 24 if (item > max) 25 { 26 max = item; 27 } 28 } 29 return max; 30 } 31 //两个值大小比较的方法 32 static int Max(int i1, int i2) 33 { 34 if (i1 > i2) 35 { 36 return i1; 37 } 38 else 39 { 40 return i2; 41 } 42 }
2.题目:交换两个数的值
交换两个变量的值
1 //题目:交换两个变量的值 2 int i1 = 5; 3 int i2 = 6; 4 int tem; 5 tem = i1; 6 i1 = i2; 7 i2 = tem; 8 Console.WriteLine("i1={0},i2={1}", i1, i2); 9 Console.ReadKey();
3.题目:求一定范围内的所有奇数的和
View Code
1 static void Main(string[] args) 2 { 3 //题目:求一定范围内的所有奇数的和 4 //..什么是奇数(不能被2整除的数) 5 int sum = JiSuHe(0, 100);//输入了0-100,就是求0到100之间的奇数和 6 Console.WriteLine(sum); 7 Console.ReadKey(); 8 9 } 10 //求奇数和的方法 11 private static int JiSuHe(int st,int end) 12 { 13 int sum = 0; 14 for (int i = st; i <= end; i++) 15 { 16 if (i % 2 != 0) 17 { 18 sum = sum + i; 19 } 20 } 21 return sum; 22 }
4.题目:c#时间格式转换汉字大写 比如: 2013年5月9日 转换成 二零一三年五月九日
View Code
1 static void Main(string[] args) 2 { 3 //c#时间格式转换汉字大写 比如: 2013年5月9日 转换成 二零一三年五月九日 4 5 string date = "2013年12月19日";//不考虑空字符,假设输入都是正确的 6 Console.WriteLine( xiaoToDa(date)); 7 Console.ReadKey(); 8 9 } 10 11 private static string xiaoToDa(string date)//给一个数字格式的日期,转化为大写的日期 12 { 13 //对字符第一步处理开始 14 string[] fenge = date.Split('年', '月', '日');//用年月日分割字符串 得到:年 月 日 15 for (int i = 1; i <= 2; i++)//操作split分割出的 月 和日,对其中的数字进行处理,如“10”-“十”,“15”-“十5” 16 { 17 if (fenge[i].Length == 2)//如果月或日的字符串长度为2 (表明月或日都是 10及其以上) 18 { 19 if (fenge[i][1] == '0')//如果长度为2的月或日 第二个字符是"0"(表明是10、20、30) 20 { 21 if (fenge[i][0] == '1')// 22 { 23 fenge[i] = "十"; 24 } 25 else 26 { 27 fenge[i] = fenge[i][0] + "十"; 28 } 29 } 30 else 31 { 32 if (fenge[i][0] == '1') 33 { 34 fenge[i] = "十" + fenge[i][1]; 35 } 36 else 37 { 38 fenge[i] = fenge[i][0] + "+" + fenge[i][1]; 39 } 40 } 41 42 } 43 }//对字符第一步处理结束 44 //第二步字符串处理开始 45 string hebing = fenge[0] + "年" + fenge[1] + "月" + fenge[2] + "日";//对处理好的字符串进行重新续接 46 string daxie = "零一二三四五六七八九";//给出大写的所有 47 string xiaoxie = "0123456789";//给出小写的所有字符 48 char[] hebingchar = hebing.ToCharArray();//得到第一步处理好的字符串的char数组 49 for (int i = 0; i < hebingchar.Length; i++)//遍历char数组 50 { 51 if (xiaoxie.Contains(hebingchar[i]))//判断char[i]是否包含小写的char 52 { 53 hebingchar[i] = daxie[xiaoxie.IndexOf(hebingchar[i])];//让该小写的char 替换为大写的 54 } 55 } 56 string dateToCh = new string(hebingchar);//把处理好的char数组转化为字符串 57 return dateToCh; 58 //第二步字符串处理结束 59 60 }
一、代码书写规则
//代码要像诗篇一样
1、骆驼命名:第一个单词首字母小写,后续单词首字母大写。变量、字段用骆驼命名:如:string myName="屌丝哥";
2、帕斯卡命名:所有单词的首字母大写。类名、方法名用Pascal命名方法。如:Max(int num1,int num2);
二、面向对象-创建类、字段、属性、构造函数等复习
View Code
1 class Program 2 { 3 static void Main(string[] args) 4 { 5 Student a = new Student("格格", "看");//创建Student的一个实例 a , 6 //a.Sex = "看";//问题:此句抛异常 为什么上一句不抛异常 7 //问题保留 创建构造函数的时候 this.sex=sex 还是 this.Sex=sex //前者不可以控制输入,后者可以 8 a.SayHello();//输出:你好我叫格格,性别看,年龄0,学号是 9 Student b = new Student("屌丝哥", "男", 25, "002"); 10 b.SayHello();//输出: 你好我叫屌丝哥,性别男,年龄25,学号是002 11 Console.Read(); 12 } 13 } 14 class Student 15 { 16 //如果没有指定构造函数,则系统自动创建一个无参的构造函数 17 //如果指定了构造函数,则系统不创建无参构造,需要的话必须自己写(一般都要写) 18 //构造函数 是一个特殊的方法(用于快速初始化类内部的字段 ) 19 //--创建构造函数--- 20 public Student() //手写无参构造 21 { 22 } 23 24 public Student(string name, string sex) //创建2个参数的构造函数 25 { 26 //this指前类的对象 27 this.name = name; 28 this.sex = sex; 29 } 30 public Student(string name, string sex, int age, string sNo) 31 : this(name, sex)//调用上面2参数构造的赋值,不要重复自己的代码 32 { 33 this.age = age; 34 this.sNo = sNo; 35 } 36 ////--创建构造函数---结束 37 38 //创建并封装sNo字段-开始 39 private string sNo; 40 public string SNo 41 { 42 get { return sNo; } 43 set { sNo = value; } 44 } 45 //创建并封装sNo字段-结束 46 //创建并封装name字段-开始 47 private string name; 48 public string Name 49 { 50 get { return name; } 51 set { name = value; } 52 } 53 //创建并封装name字段-结束 54 // 55 private int age; 56 public int Age 57 { 58 get { return age; } 59 set { age = value; } 60 } 61 // 62 private string sex; 63 public string Sex 64 { 65 get { return sex; } 66 set 67 { 68 if (value == "男" || value == "女")//如果value值只能为“男”或“女” 69 { 70 sex = value; 71 } 72 else 73 { 74 throw new Exception("年龄不合法");//抛出异常 75 } 76 } 77 } 78 public void SayHello()//创建无返回值的SayHello()方法 79 { 80 Console.WriteLine("你好我叫{0},性别{1},年龄{2},学号是{3}", name, sex, age, sNo); 81 } 82 }
问题:创建构造函数的时候 是用 this.name=name 还是 this.Name=name;
1 public Student(string name, string sex) //创建2个参数的构造函数 2 { 3 //this指前类的对象 4 this.name = name; 5 this.sex = sex; 6 }
//问题解答:如果只是简单的赋值使用字段和属性都可以.
推荐使用 属性赋值,这样的话可以屏蔽无效值,不用担心程序跑的慢 (因为如果C#编译器检测到属性简单赋值 会自动替换成字段赋值的)