【簡(jiǎn)答題-9】
有一套四位數(shù)加密系統(tǒng),輸入四位數(shù)以后會(huì)自動(dòng)加密。加密規(guī)則如下:每位數(shù)字都加上 5,然后用和除以 10的余數(shù)代替該數(shù)字,分別再將第一位和第四位交換、第二位和第三位交換,請(qǐng)用 C 語(yǔ)言寫出此加密算法。
分析要點(diǎn)
1. 準(zhǔn)備使用多次循環(huán)輸入,while 循環(huán),并且指定一個(gè)輸入退出機(jī)制,用 break 退出外部的 while;
2. sacnf 輸入時(shí),一定注意對(duì)于 int、unsigned int 等類型的數(shù)據(jù)需要使用& 取地址符號(hào),而對(duì)于字符數(shù)組或者字符串是不需要用&,直接給變量名;
scanf("%d",&data_in);//注意&取地址符號(hào)scanf("%s",data_in);//對(duì)于字符串,字符數(shù)組,變量名就是數(shù)組首地址
3. 對(duì)一個(gè)四位數(shù)取每一位的數(shù)據(jù),應(yīng)該依次取模后取除法;
4. 輸出要按指定格式輸出,考慮輸出結(jié)果是 0 或者 12 等不足 4 位數(shù)的情況,需要在前面補(bǔ)零,即輸出 0000、0012 等;
printf("data_out = %04d
",data_out);
注意 printf 輸出和 scanf 輸入的不同,printf 直接是變量名,scanf 是 &+變量名;
編程結(jié)果
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 循環(huán)break;}// 取出 四位數(shù)A = data_in / 1000;B = (data_in % 1000) / 100;C = (data_in % 100) / 10;D = (data_in % 10);// 加 5 求 余數(shù)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位的前面補(bǔ)零到 4 位// 比如 0,指定格式輸出 0000printf("data_out = %04d ",data_out);}return 0;}

原文標(biāo)題:一道簡(jiǎn)簡(jiǎn)單單的 C 語(yǔ)言編程題
文章出處:【微信公眾號(hào):FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
-
C語(yǔ)言
+關(guān)注
關(guān)注
183文章
7642瀏覽量
144609 -
編程
+關(guān)注
關(guān)注
90文章
3707瀏覽量
96765 -
加密算法
+關(guān)注
關(guān)注
0文章
219瀏覽量
26140
原文標(biāo)題:一道簡(jiǎn)簡(jiǎn)單單的 C 語(yǔ)言編程題
文章出處:【微信號(hào):zhuyandz,微信公眾號(hào):FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
加密算法的應(yīng)用
汽車遙控加密算法
DES加密算法是什么
對(duì)稱加密算法是什么
淺談對(duì)稱加密算法與非對(duì)稱密鑰加密算法
基于STM32的C語(yǔ)言SHA256加密算法相關(guān)資料下載
利用匯編語(yǔ)言實(shí)現(xiàn)DES加密算法
采用多種加密算法的文件加密方法
XXTEA加密算法的KEIL C實(shí)現(xiàn)
用C 語(yǔ)言描述AES256 加密算法
c語(yǔ)言實(shí)現(xiàn)des加密算法詳細(xì)過(guò)程
Go常用的加密算法詳細(xì)解讀
基于STM32的C語(yǔ)言SHA256加密算法
C加密算法的實(shí)現(xiàn)

用C語(yǔ)言寫出簡(jiǎn)單的加密算法
評(píng)論