算法:指为了解决某个问题而采取的步骤和方法的描述
(1)查到最大值的算法实现:
Console.Write("请输入一组数(中间用逗号隔开):");
string strNums = Console.ReadLine();
string[] arr_Str = strNums.Split(',');
int max = Convert.ToInt32(arr_Str[0]);
for (int i = 1; i < arr_Str.Length; i++)
{
if (max >= Convert.ToInt32(arr_Str[i]))
{
max = max;
}
if (max < Convert.ToInt32(arr_Str[i]))
{
max = Convert.ToInt32(arr_Str[i]);
}
}
Console.WriteLine("最大值:"+max);
(2)最大公约数的算法实现:
计算两个数的最大公约数:首先定义两个数,且第一个小于第二个(如12,16);然后定义一个变量result来记录这两个数的最大公约数,从将result赋值为第一个数(12),开始检查result是否能同时整除这两个数,若不能则将result-1继续循环。
int a, b;
Console.Write("请输入a的值:");
a = Convert.ToInt32(Console.ReadLine());
Console.Write("请输入b的值:");
b = Convert.ToInt32(Console.ReadLine());
if (a*b!=0)
{
int result = Math.Min(a, b);//数学类Math,获取几个数中比较小的那个数的方法Min
while (a % result != 0 || b % result != 0)
{
result--;
}
Console.WriteLine("最大公约数:"+result);
}
else//a*b=0的情况
{
Console.WriteLine("两个数中不能有0!");
}
(3)实现10!的算法
int sum = 1;
for (int i = 1; i <=10; i++)
{
sum *= i;
}
Console.WriteLine(sum);
(4)计算闰年:四年一闰,百年不闰,四百年再闰
Console.Write("请输入年份:");
int a = Convert.ToInt32(Console.ReadLine());
if (a % 4== 0)
{
if (a % 100 == 0&&a%400==0)
{
Console.WriteLine("是闰年");
}
else if(a%100==0&&a%400!=0)
{
Console.WriteLine("不是闰年");
}
else
{
Console.WriteLine("是闰年");
}
}
else
{
Console.WriteLine("不是闰年");
}
(5)冒泡排序法:数据在数组中不断向前移动
基本思想:比较相邻的两个元素值,如果满足条件,把较小的元素移到数组前面,大的移到后面,最后较小的元素会从底部上升到顶部
int[] arr = new int[] { 1, 12, 15, 412, 154, 12, 31564, 1515, 3156, 14, 15 };
Console.WriteLine("初始数组:");
for (int k = 0; k < arr.Length; k++)
{
Console.WriteLine(arr[k]);
}
int temp;
for (int i = 0; i < arr.Length-1; i++)
{
for (int j =i+1; j < arr.Length; j++)
{
if (arr[i] > arr[j])//大于时为顺序排序,小于时为逆序排序
{
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;//这三步就等于如果arr[i]大于arr[j],则两者互换位置
}
}
}
Console.WriteLine("冒泡排序后的数组:");
for (int i = 0; i < arr.Length; i++)
{
Console.WriteLine(arr[i]);
}
(6)选择排序方法
基本思想:将指定排序位置与其他的数组元素分别对比,如果满足条件则交换位置
区别于冒泡排序:不是将相邻的元素对比
int[] arr = new int[] { 114, 122, 31, 51, 345 };
Console.WriteLine("初始数组:");
for (int i = 0; i < arr.Length; i++)
{
Console.Write(arr[i]+" ");
}
Console.WriteLine();
Console.WriteLine("------------------------");
int min;
for (int i = 0; i < arr.Length-1; i++)
{
min = i;
for (int j =i+1; j < arr.Length; j++)
{
if (arr[j] < arr[min])
{
min = j;
}
}
int temp = arr[min];
arr[min] = arr[i];
arr[i] = temp;
}
Console.WriteLine("选择排序后的数组:");
for (int i = 0; i < arr.Length; i++)
{
Console.Write(arr[i]+" ");
}
Console.ReadLine();