當前位置:成語大全網 - 書法字典 - 根據下面的加密規則,將指定的加密密鑰KEY和原字符串的加密函數設置為C語言中的n個字符。。。。。

根據下面的加密規則,將指定的加密密鑰KEY和原字符串的加密函數設置為C語言中的n個字符。。。。。

上次沒有認真復習題目,現在根據題目條件修改了源程序。方法:用線陣模擬線圈。

# include & ltstdio.h & gt

# include & ltstdlib.h & gt

#定義?n?10//字符數

#定義?鑰匙?6//鍵(1~n)

int?makePassword(char?*word,char?*密碼)

{

int?I = 0;//遍歷原始數組的下標

int?檢查[n-1];//標記是否被訪問。

int?start = 0;//指向當前插入原始字符串的位置。

int?pos = 0;//指向密文數組中的插入位置。

for(I = 0;我& ltn-1;i++)?檢查[我]?=?0;//初始化為未訪問

if(key & lt;0 | | key & gt=n-1)?回歸?0;//鍵越界,無法返回。

I = 0;

while(start & lt;n-1)

{

If(0 = = check[I])//如果沒有標記,pos開始計數(跳過存儲值的位置)。

{

//printf(" check[% d]= % d \ n ",I,check[I]);//為了測試,可以查看標記的內容。

if(++pos==key)

{

//printf(" pos = % d,password[%d]=%c\n ",pos,I,word[start]);//為了測試,可以查看原始數組中插入點的存儲值和對應的下標值。

pos?=?0;

密碼[i]?=?word[start++];

檢查[我]?=?1;//標記為已訪問

}

}

if(i==n-2)?I = 0;//因為word[n-1]是終止符,所以不參與循環,也就是在記住最後壹個字母的時候再開始遍歷原數組。

不然呢?i++;

}

密碼[n-1]= ' \ 0 ';//帶終止符的密文結尾

回歸?1;

}

int?主()

{

夏爾?word[n]="it '太守",密碼[n];//註意,字符串長度應該等於n-1,為終止符' \0 '留壹個。

If (make password (word,password)= = 1)//轉換成功則打印。

printf(" original:% s \ n cipher text:% s \ n ",word,password);

回歸?0;

}