练习题
最大公约数
//输入两个整数,求两个整数的最大公约数
Console.WriteLine("请输入两个整数:");
int num_1 = Convert.ToInt32(Console.ReadLine());
int num_2 = Convert.ToInt32(Console.ReadLine());
if (num_1 > num_2)
{
int temp = num_1;
num_1 = num_2;
num_2 = temp;
}
if(num_2 % num_1 == 0)
{
Console.WriteLine("两数的最大公约数为:{0}", num_1);
}
else
{
for (int i = num_1; i > 0; i--)
{
if (num_1 % i == 0 && num_2 % i == 0)
{
Console.WriteLine("两数的最大公约数为:{0}", i);
break;
}
}
}
最小公倍数
//输入两个整数,求最大公倍数
Console.WriteLine("请输入两个整数:");
int num_1 = Convert.ToInt32(Console.ReadLine());
int num_2 = Convert.ToInt32(Console.ReadLine());
int max_num = Math.Max(num_1, num_2);
int num_3=max_num;
for(; ; )
{
if (max_num % num_1 == 0 && max_num % num_2 == 0)
{
Console.WriteLine("最小公倍数为{0}", max_num);
break;
}
max_num += num_3;
}
猜数字游戏
Random obj1 = new Random();//生成一个随机数对象,里面会有一个方法Next(a,b)方法从a取到b-1,不包括b
int num_1 = obj1.Next(1, 100);
Console.WriteLine("猜数字游戏,请输入一个1到100之间的数字:");
for (; ;)
{
int num_2 = Convert.ToInt32(Console.ReadLine());
if (num_2 > num_1)
{
Console.WriteLine("数字猜大了,请重新输入:");
}
else if (num_2 < num_1)
{
Console.WriteLine("数字猜小了,请重新输入:");
}
else
{
Console.WriteLine("恭喜,数字猜中了,游戏结束");
break;
}
}
数组
使用一个大的盒子来存一组数据 数组 引用类型 存的是同一种类型的数据
和普通的数据类型在内存中存的位置不一样,存在堆中
int[] year = { 1, 2, 3, 4, 5 };//定义方式
Console.WriteLine(year.Length);//输出year的长度为5
int[] id;//第二种定义方式 限定长度 初始化声明
id = new int[10]{1,2,3,4,5};//生成一个数组 数组长度是10 int数据类型有默认的值为0
Console.WriteLine(id[2]);//通过下标读取数值 从编号0开始读取
使用for循环遍历数值
for(int i = 0; i < year.Length; i++)
{
Console.WriteLine(year[i]);//i为下标
}
//另一种方法
foreach(int temp in year)//会遍历数组 然后每次获取的值给temp变量
{
Console.WriteLine(temp);//temp为数值
}
关于字符串的几个方法
//转大小写
string name = " 小明,同学,ab,cd ";
Console.WriteLine(name.ToUpper());
Console.WriteLine(name.ToLower());
//将字符串中左右的空格去掉Trim()
Console.WriteLine(name.Trim());
//去掉左边的空格
Console.WriteLine(name.TrimStart());
//去掉右边的空格
Console.WriteLine(name.TrimEnd());//返回一个新的字符串,不改变原数组
name = name.Trim();
//字符串也可以看出一个数组 也可遍历 但不可改数值
for(int i = 1; i < name.Length; i++)
{
Console.WriteLine(name[i]);
}
string[] name1;
name1 = name.Split(",");//以,为界输出其他字符
foreach(string temp in name1)
{
Console.WriteLine(temp);
}
练习题
换可乐计算,3个空瓶换一瓶可乐
Console.WriteLine("输入可乐瓶数:");
int C_bottles = Convert.ToInt32(Console.ReadLine());
int sum= C_bottles;
while (C_bottles>2 )//大于2可以一直换
{
sum += C_bottles / 3;//总瓶数加上换得的瓶数
C_bottles = C_bottles / 3 + C_bottles % 3;//换得得瓶数加上不够换的
}
Console.WriteLine("总共可以喝{0}瓶,还剩{1}个空瓶",sum+C_bottles,C_bottles);
字符加密
char[] sList = Console.ReadLine().ToCharArray();// Console.ReadLine().ToCharArray();字符串转字符数组
for (int i = 0; i < sList.Length; i++)
{
if (('a' <= sList[i] && sList[i] <= 'z') || ('A' <= sList[i] && sList[i] <= 'Z'))
{
if ('x' <= sList[i] || ('X' <= sList[i] && sList[i] <= 'Z'))
{
sList[i] = Convert.ToChar(sList[i] + 23);
}
else
{
sList[i] = (char)(sList[i] + 3);
}
}
}
Console.WriteLine(string.Join("", sList));//将数组通过某个字符连接成字符串string.Join(连接符,数组)最后返回一个字符串 和Split相反
string.Join()示例
string[] stList = { "1", "2", "3", "4" };
Console.WriteLine(string.Join("-", stList));