1,数组分析器:
#region 创建数组
Console.Write("请输入数组的长度:");
int len = int.Parse(Console.ReadLine());
int[] numbers = new int[len];
for (int i = 0; i < numbers.Length; i++)
{
Console.Write("请输入数组的第" + (i + 1) + "项:");
numbers[i] = int.Parse(Console.ReadLine());
}
#endregion
Console.Clear();
#region 升序排序
for (int i = 0; i < numbers.Length - 1; i++)
{
for (int j = i + 1; j < numbers.Length; j++)
{
if (numbers[i] > numbers[j])
{
int temp = numbers[i];
numbers[i] = numbers[j];
numbers[j] = temp;
}
}
}
#endregion
#region 输出数组
Console.WriteLine("您输入的数字排序后如下:");
for (int i = 0; i < numbers.Length; i++)
{
Console.Write(numbers[i] + " ");
}
Console.WriteLine();
#endregion
#region 寻找奇数
Console.WriteLine("其中,以下数字是奇数:");
for (int i = 0; i < numbers.Length; i++)
{
if (numbers[i] % 2 != 0)
{
Console.Write(numbers[i] + " ");
}
}
Console.WriteLine();
#endregion
#region 寻找质数
Console.WriteLine("以下数字是质数:");
for (int i = 0; i < numbers.Length; i++)
{
bool isFind = false;
for (int j = 2; j < numbers[i]; j++)
{
if (numbers[i] % j == 0)
{
isFind = true;
break;
}
}
if (!isFind)
{
Console.Write(numbers[i] + " ");
}
}
#endregion
Console.ReadLine();
}
}
2,分解质因数
#region 1.提示并获取用户输入的合数,将该合数保存到变量number中
int number;
while (true)
{
Console.Write("请输入一个合数(大于1):");
number = int.Parse(Console.ReadLine());
if (number <= 1)
{
Console.Write("输入有误,输入的数学必须大于1,按回车键继续");
Console.ReadLine();
Console.Clear();
}
else
{
#region 判断number是不是质数
bool isFind = false;
for (int i = 2; i < number; i++)
{
if (number % i == 0)
{
isFind = true;
break;
}
}
if (isFind)
{
//不是质数
break;
}
else
{
//是质数
Console.Write("输入有误,输入的数字必须是合数,按回车键继续");
Console.ReadLine();
Console.Clear();
}
#endregion
}
}
#endregion
#region 2.得到变量number所有的质因数,把它们保存到集合factors中
List<int> factors = new List<int>();
int n = number;
while (n != 1)
{
for (int i = 2; i <= n; i++)
{
if (n % i == 0)
{
//i就是n的最小质因数
n = n / i;
factors.Add(i);
break;
}
}
}
#endregion
#region 3.输出结果
string result = number + "=";
for (int i = 0; i < factors.Count; i++)
{
result += factors[i];
if (i < factors.Count - 1)
{
result += "×";
}
}
Console.Write(result);
#endregion
Console.ReadLine();
3,斐波拉契数列
Console.Write("请输入斐波拉契数列的长度:");
int n = int.Parse(Console.ReadLine());
int[] numbers = new int[n];
//给数组的每一项赋值
for (int i = 0; i < numbers.Length; i++)
{
if (i <= 1)
{
numbers[i] = 1;
}
else
{
numbers[i] = numbers[i - 1] + numbers[i - 2];
}
}
//遍历输出数组
foreach (int item in numbers)
{
Console.Write(item + "\t");
}
Console.ReadLine();
}
}
4,反序输出
{
Console.Write("请输入一个字符串:");
string input = Console.ReadLine();
string reverse = "";
for (int i = input.Length - 1; i >= 0; i--)
{
reverse += input[i];
}
Console.Write(reverse + ":是串符字的入输你");
Console.ReadLine();
}
}
5,控制台日历
while (true)
{
#region 获取正确的年份和月份
int year, month;
while (true)
{
Console.Write("请输入年份(1900-2100):");
year = int.Parse(Console.ReadLine());
if (year > 2100 || year < 1900)
{
Console.Write("年份输入错误,按回车键后重新输入");
Console.ReadLine();
Console.Clear();
}
else
{
Console.Write("请输入月份(1-12):");
month = int.Parse(Console.ReadLine());
if (month < 1 || month > 12)
{
Console.Write("月份输入错误,按回车键后重新输入");
Console.ReadLine();
Console.Clear();
}
else
{
break;
}
}
}
#endregion
#region 获得该年该月的所有日期包括前面的空白,保存到一个字符串集合dates中
List<string> dates = new List<string>();
#region 将空白加入到集合
//1.计算1900年 到 year-1 年,经过的天数
int crossDaysOfYear = 0;
for (int i = 1900; i < year; i++)
{
//循环变量i就代表的是某一年
if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0)
{
crossDaysOfYear += 366;
}
else
{
crossDaysOfYear += 365;
}
}
//2. 在变量year这一年,从1月到month-1月经过的天数
int crossDaysOfMonth = 0;
for (int i = 1; i < month; i++)
{
//循环变量i,就是某一月
if (i == 2)
{
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
{
crossDaysOfMonth += 29; //闰二月
}
else
{
crossDaysOfMonth += 28;//普通二月
}
}
else if (i % 2 != 0 && i <= 7 || i % 2 == 0 && i >= 8)
{
crossDaysOfMonth += 31;//大月
}
else
{
crossDaysOfMonth += 30;//小月
}
}
int crossDays = crossDaysOfYear + crossDaysOfMonth;//经过的总天数
int dayOfWeek = crossDays % 7 + 1;//year-month-1 是星期几
int space = dayOfWeek - 1; //前面的空格数量
for (int i = 0; i < space; i++)
{
dates.Add("");
}
#endregion
#region 将日期数字加入到集合
int days;
//计算year-month 这一月的天数
if (month == 2)
{
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
{
days = 29;//闰二月
}
else
{
days = 28;//普通二月
}
}
else if (month <= 7 && month % 2 != 0 || month > 7 && month % 2 == 0)
{
days = 31;//大月
}
else
{
days = 30;//小月
}
for (int i = 1; i <= days; i++)
{
dates.Add(i.ToString());
}
#endregion
#endregion
#region 输出结果
Console.WriteLine("**************************************************");
Console.Write("一\t二\t三\t四\t五\t六\t日");
for (int i = 0; i < dates.Count; i++)
{
if (i % 7 == 0)
{
Console.WriteLine();
}
Console.Write(dates[i] + "\t");
}
Console.WriteLine();
Console.WriteLine("**************************************************");
#endregion
Console.Write("按回车键后继续");
Console.ReadLine();
}
}
}