练习题:
- 数组反转
class Program { static void Main(string[] args) { int temp = 0; int[] nums = { 1, 2, 3, 4, 5, 6, 7, 8, 9}; for (int i = 0; i < nums.Length/2; i++) { temp = nums[i]; nums[i] = nums[nums.Length - 1 - i]; nums[nums.Length - 1 - i] = temp; } for (int i = 0; i < nums.Length; i++) { Console.Write(nums[i]+"\t"); } Console.ReadKey(); } }
- 冒泡排序
class Program { static void Main(string[] args) { //冒泡排序 升序和降序排列 int[] nums = { 2, 3, 5, 1, 0, 9, 8, 12, 13 }; for (int i = 0; i < nums.Length - 1; i++) { for (int j = 0; j < nums.Length - 1 - i; j++) { if (nums[j] > nums[j + 1]) { int temp = nums[j]; nums[j] = nums[j + 1]; nums[j + 1] = temp; } } }//升序 //Array.Sort(nums);//升序 //Array.Reverse(nums);//数组反转 for (int i = 0; i < nums.Length; i++) { Console.Write(nums[i] + "\t"); } Console.ReadKey(); } }
- tryParse()方法
class Program { static void Main(string[] args) { /* 原tryParse()方法 string str = "123"; int result; bool b = int.TryParse(str,out result); Console.WriteLine("转换成功?{0},转换后的值为{1}",b,result); Console.ReadKey();*/ //重写tryParse() string str = "123abc"; int result; bool b = myTryParse(str, out result); Console.WriteLine("转换成功?{0},转换后的值为{1}", b, result); Console.ReadKey(); } /// <summary> /// 将字符串转换成int类型 /// </summary> /// <param name="s">输入需要转换的字符串</param> /// <param name="result">转换后返回值</param> /// <returns>转换是否成功</returns> public static bool myTryParse(string s,out int result) { try { result = Convert.ToInt32(s); return true; } catch { result = 0; return false; } } }
- 方法的总结
方法的总结:
1.作用:可以让代码重复的使用
2.参数:完成这个方法所必须要的条件
3.返回值:完成方法后,方法返回的结果
4.out参数:可以让方法返回多个值
5.ref参数:侧重于将一个变量带到方法中进行改变,改变完成后,再将改变后的值带出去
6.params可变参数:将实参列表中跟可变参数数组类型一样的参数当做是可变参数数组中的元素。
可变参数必须是形参列表中的最后一个元素。
7.方法的重载:
方法的名称相同,但是参数不同。跟返回值没关系。
参数不同:
-------7.1.如果参数的个数相同,那么参数的类型就不能相同。
-------7.2.如果参数的类型相同,那么参数的个数就不能相同。
8.方法的递归:在方法内部自己调用自己
- 方法的小练习
class Program
{
static void Main(string[] args)
{
//提示用户输入两个数字 计算这两个数字之间所有整数的和
/*
条件:1.用户只能输入数字
2.要求第一个数字必须比第二个数字小
3.计算两个数字之间和
*/
Console.WriteLine("请输入第一个数字:");
string strNum1 = Console.ReadLine();
int num1 = GetNumber(strNum1);
Console.WriteLine("请输入第二个数字:");
string strNum2 = Console.ReadLine();
int num2 = GetNumber(strNum2);
//对比两个数是否符合要求
Judge(ref num1, ref num2);
//计算两数之间的总和
int sum = GetSum(num1, num2);
Console.WriteLine("{0}~{1}={2}",num1, num2, sum);
Console.ReadKey();
}
/// <summary>
/// 输入的字符串必须能够转换为数字
/// </summary>
/// <param name="strNumber">用户输入的字符串</param>
/// <returns>返回一个转换之后的数字</returns>
public static int GetNumber(string strNumber)
{
while (true)
{
try
{
int number = Convert.ToInt32(strNumber);
return number;
}
catch
{
Console.WriteLine("输入有误!请重新输入");
strNumber = Console.ReadLine();
}
}
}
/// <summary>
/// 确保第一个数比第二个数大
/// </summary>
/// <param name="n1">第一个数</param>
/// <param name="n2">第二个数</param>
public static void Judge(ref int n1, ref int n2)
{
while (true)
{
if (n1 < n2)
{
return;
}
else
{
Console.WriteLine("输入的第一个数必须小于第二个数,请重新输入:");
string s1 = Console.ReadLine();
n1 = GetNumber(s1);
string s2 = Console.ReadLine();
n2 = GetNumber(s2);
}
}
}
/// <summary>
/// 从第一个数至第二个数之间的总和
/// </summary>
/// <param name="n1">第一个数</param>
/// <param name="n2">第二个数</param>
/// <returns>返回两数之间的总和</returns>
public static int GetSum(int n1,int n2)
{
int sum = 0;
for (int i = n1; i <= n2; i++)
{
sum += i;
}
return sum;
}
}
- 判断质数
class Program
{
static void Main(string[] args)
{
//输入一个数,判断这个数字是否为质数
Console.WriteLine("请输入一个数:");
int num = Convert.ToInt32(Console.ReadLine());
bool b = isPrime(num);
Console.WriteLine("是否为质数?{0}",b);
Console.ReadKey();
}
/// <summary>
/// 判断质数
/// </summary>
/// <param name="n">传参:需要判断的数字</param>
/// <returns>是否为质数</returns>
public static bool isPrime(int n)
{
if (n < 2)
{
return false;
}
else
{
for (int i = 2; i < n; i++)
{
if (n % i == 0)
{
return false;
}
}
return true;
}
}
}
- 圆的周长面积
class Program
{
static void Main(string[] args)
{
//写一个方法,计算圆的面积和周长
double area;
double perimeter;
GetAreaPerimeter(5, out area, out perimeter);
Console.WriteLine("面积:{0:0.00}---周长{1:0.00}", area, perimeter);
Console.ReadLine();
}
public static void GetAreaPerimeter(double r,out double area,out double perimeter)
{
area = Math.PI * r * r;
perimeter = 2 * Math.PI * r;
}
}