Linuxc基礎 十一
阿新 • • 發佈:2018-11-30
今天做了一道加密和解密的題我感覺很難。
程式碼
程式碼題目:某個公司採用公用電話傳遞資料資訊,資料是小於8位的整數,為了確保安全,在傳遞過程中需要加密,加密規則如下:
首先將資料倒序,然後將每位數字都加上5,再用和除以10的餘數代替該數字,最後將第一位和最後一位數字交換。 請任意給定一個小於8位的整數,然後,把加密後的結果在控制檯打印出來
#include <stdio.h> int my_shuzu(int num,int array[]) { int len = 0; int i = 0; while(num) { array[i] = num % 10; num /= 10; ++i; ++len; array[i]; } return len; } //加密程式碼 void JiaMi(int array[], int len) { int i; int temp; for(i=0;i<len;++i) { temp= array[i]+5; array[i]=temp % 10; } temp = array[len-1]; array[len-1] = array[0]; array[0] = temp; for (i = 0; i < len; ++i) { printf("%d", array[i]); } printf("\n"); } //解密程式碼 void JieMi(int *pb,int len2) { int num1; int temp; int i; temp = pb[len2-1]; pb[len2-1] = pb[0]; pb[0] = temp; for(i=0;i<len2;++i) { if(pb[i]<=5) { pb[i]+=5; } else if(pb[i]>5) { pb[i]-=5; } } for(i=0;i<len2;++i) { printf("%d",pb[i]); } printf("\n"); num1=pb[len2-1]; for(i=len2-1;i>0;i--) { num1=pb[i-1]+10*num1; } printf("%d\n",num1); } int main() { int array[8] = {0}; int num=12345678; int len1=my_shuzu(num,array); JiaMi(array,len1); JieMi(array,len1); }
總結
今天寫的這個程式對我來說還是有點難度的,但是我還是堅持的把功能實現了。這個程式寫的有點複雜和不規範,我以後會繼續改進的我覺得這個程式很考驗我對函式的使用情況。