【簡答題-9】
有一套四位數加密系統,輸入四位數以后會自動加密。加密規則如下:每位數字都加上 5,然后用和除以 10的余數代替該數字,分別再將第一位和第四位交換、第二位和第三位交換,請用 C 語言寫出此加密算法。
分析要點
1. 準備使用多次循環輸入,while 循環,并且指定一個輸入退出機制,用 break 退出外部的 while;
2. sacnf 輸入時,一定注意對于 int、unsigned int 等類型的數據需要使用& 取地址符號,而對于字符數組或者字符串是不需要用&,直接給變量名;
scanf("%d",&data_in);//注意&取地址符號
scanf("%s",data_in);//對于字符串,字符數組,變量名就是數組首地址
3. 對一個四位數取每一位的數據,應該依次取模后取除法;
4. 輸出要按指定格式輸出,考慮輸出結果是 0 或者 12 等不足 4 位數的情況,需要在前面補零,即輸出 0000、0012 等;
printf("data_out = %04d
",data_out);
注意 printf 輸出和 scanf 輸入的不同,printf 直接是變量名,scanf 是 &+變量名;
編程結果
int main()
{
int data_in;
char A, B, C, D;
char A1, B1, C1, D1;
int data_out;
while(1) {
printf("please input data_in: ");
scanf("%d",&data_in);
// 輸入 11111 表示退出
if(data_in==11111){
printf("Exit ");
// break 退出了 while 循環
break;
}
// 取出 四位數
A = data_in / 1000;
B = (data_in % 1000) / 100;
C = (data_in % 100) / 10;
D = (data_in % 10);
// 加 5 求 余數
A1 = (A + 5) % 10;
B1 = (B + 5) % 10;
C1 = (C + 5) % 10;
D1 = (D + 5) % 10;
// 位交換 + 拼接
data_out = D1*1000 + C1*100 + B1*10 + A1;
//指定格式輸出,輸出4位,不夠4位的前面補零到 4 位
// 比如 0,指定格式輸出 0000
printf("data_out = %04d ",data_out);
}
return 0;
}
原文標題:一道簡簡單單的 C 語言編程題
文章出處:【微信公眾號:FPGA之家】歡迎添加關注!文章轉載請注明出處。
-
C語言
+關注
關注
180文章
7604瀏覽量
136813 -
編程
+關注
關注
88文章
3615瀏覽量
93732 -
加密算法
+關注
關注
0文章
215瀏覽量
25549
原文標題:一道簡簡單單的 C 語言編程題
文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論