题目
用户输入一个八位数,进行加密,加密规则是:将每位数字都加上5,再用其与10相除所得的余数代替该数字;最后将第一位数字和最后一位数字进行交换。
先上代码:
static void Main(string[] args)
{
Console.WriteLine("请输入一个八位整数:");
//用string类型接受用户输入,方便进行字符串操作
string str = Console.ReadLine();
//直接转换为char类型的数组,目的是截取每一个字符
char[] ch = str.ToCharArray();
//声明一个int类型的数组,因为接下来要进行数据处理
int[] nums = new int[ch.Length];
for (int i = 0; i < ch.Length; i++)
{
//ch[i].Tostring强行转换为string类型,再转换为int类型
//因为char类型不能直接转换为int类型
nums[i] = int.Parse(ch[i].ToString());
nums[i] = (nums[i] + 5) % 10;
}
//声明一个变量,用于进行数据交换
//nums[nums.length]代表数组中的最后一个
int temp = nums[0];
nums[0] = nums[nums.Length - 1];
nums[nums.Length - 1] = temp;
string str2 = "";
Console.WriteLine("加密后输出的结果是:");
for (int i = 0; i < nums.Length; i++)
{
//声明一个为空的字符串,可以把int类型转换为string类型
str2 += nums[i];
}
Console.WriteLine(str2);
}
三个关键的点:
1、为什么要作为字符串输入?
从题目中我们很容易知道,这是关于字符串操作的题,用string类型输入会方便很多。同时,int不能直接转换为int数组,用int数组输入要换行,但只输入一个数,故使用string类型。
2、为什么要转换char类型的数组?有什么需要注意的?
我们需要对每一个字符操作,但输入的是一整条字符串,需要通过.toCharArray方法来获取每一个字符串,同时,char数组不能直接转换为int数组,需要将char数组先转换为string类型,再转换为int数组。
3、输出string类型的结果
声明一个string类型的变量,值为空,将int数组的值累加进去,就可以转换为string类型。
tip:有问题请指出!谢谢!