一、练习题目
1、有序数列插入一个数字仍然有序
Console.WriteLine("请随机输入一串用空格隔开的数字")
string str = Console.ReadLine()
string[] strArray = str.Split(" ")
int[] numArray = new int[strArray.Length]
for(int i = 0
{
numArray[i] = Convert.ToInt32(strArray[i])
//
}
Array.Sort(numArray)
//输入要插入的数字
Console.WriteLine("请输入要插入的数字")
int num = Convert.ToInt32(Console.ReadLine())
//定义插入数字的下标
int numIndex = 0
//循环有序的数组,判断num该加入到哪个位置
for(int i = 0
{
//判断num有没有在数组中间
if(numArray[i] <= num && num <= numArray[i + 1])
{
numIndex = i + 1
break
}
}
//特殊情况,插入的值为最大值(排到最后了)循环结束时numIndex还是等于0
if (num >numArray[numArray.Length - 1])//前面用了等号,如果和最大值相等的话,会插到倒数第二个
{
numIndex = numArray.Length
}
//上面执行完,会得到插入的下标
//创建一个新的数组然后赋值输出
int[] num2Array = new int[numArray.Length+1]
//循环遍历赋值输出,分为两个节点
//0-numIndex-1,相当于是和第一个数组中的元素一样,下标也一样
for(int i = 0
{
num2Array[i] = numArray[i]
}
//numIndex,直接插入num的值
num2Array[numIndex] = num
//numIndex+1 到最后一个
for(int i = numIndex+1
{
num2Array [i] = numArray [i-1]
}
Console.WriteLine(string.Join(",", num2Array))
2、输入变量名判断是否为合法变量名
Console.WriteLine("请输入变量名")
string str1 = Console.ReadLine()
//创建一个中间变量判断是否为合法字符
Boolean isleagal = false
for (int i = 0
{
if (str1[i] >= 48 && str1[i] <= 57 || str1[i] >= 65 && str1[i] <= 90 || str1[i] >= 90 && str1[i] <= 122 || str1[i] == 95)//看字符是否是数字,字母和下划线,不是的话isleagel为false
{
if (str1[0] >= 48 && str1[0] <= 57)//判断第一个数是否是数字,是数字直接跳出循环,isleagel为false
{
break
}
isleagal = true
}
else
{
isleagal = false
break
}
}
if (isleagal)
{
Console.WriteLine("合法")
}
else
{
Console.WriteLine("不合法")
}
3、输入一串字符判断是否是回文数
Console.WriteLine("请输入一串字符")
string str = Console.ReadLine()
//定义一个中间变量,记录是否为回文数
Boolean isPalindrome = true
//循环字符串
for (int i = 0
{
if (str[i] != str[str.Length - i - 1])//假设一个4位数moom,str[0]=str[3]
{
isPalindrome = false
break
}
}
if (isPalindrome)
{
Console.WriteLine("回文")
}
else
{
Console.WriteLine("不是")
}
4、输入一段时间的气温,判断气温连续下降的最大天数
Console.WriteLine("请输入这段时间的气温")
string str = Console.ReadLine()
string[] strArray = str.Split(" ")
int[] temp = new int[strArray.Length]
//给气温数组赋值
for (int i = 0
{
temp[i] = Convert.ToInt32(strArray[i])
}
//记录每次连续降温的次数
int day = 1
//记录最大的连续降温次数
int max = 1
for (int i = 0
{
if (temp[i] > temp[i + 1])
{
day++
if (day > max)
{
max = day
}
}
else
{
//中断了所以需要重新赋值
day = 1
}
}
Console.WriteLine("最大连续下降天数是:{0}", max)
5、小明整百向妈妈存钱,妈妈保管到年末,就会多给小明20%的钱,妈妈给个月给小明300元,每个月小明有预算支出(输入的每个月的预算),每个月小明减掉花的,够一百就存给妈妈,不够就剩到下个月,可能会超出预算,输入小明的几个月的预算(1<n<=12),如果某个月预算超出则输出对应月份加负号;
Console.WriteLine("请输入你每个月的预算")
string str = Console.ReadLine()
string[] strArray = str.Split(" ")
int[] budget = new int[strArray.Length]
//定义一个变量给妈妈的钱
int mom = 0
//表示小明每个月剩下的钱
int self = 0
//赋值,将输入的字符串变为整数(预算)
for (int i = 0
{
budget[i] = Convert.ToInt32(strArray[i])
}
//遍历数组
for (int i = 0
{
self = 300 + self - budget[i]
if (self >= 0)//说明可以存钱
{
if (self % 100 == 0)//可以整百的存给妈妈
{
mom += self
self = 0
}
else
{
mom += (self / 100) * 100
self = self - (self / 100) * 100
//Console.WriteLine(mom)
//Console.WriteLine(self)
}
}
else //破产了
{
Console.WriteLine("-{0}", i + 1)
break
}
}
Console.WriteLine("小明最后剩下的钱{0},存款为:{1}", self, mom)
Console.WriteLine("最后有多少钱{0}", self + (mom * 1.2))