題目
用戶輸入一個八位數,進行加密,加密規則是:將每位數字都加上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:有問題請指出!謝謝!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/271891.html
標籤:其他
