Colección de citas famosas - Slogan de motivación - De acuerdo con las reglas de cifrado a continuación, establezca la clave de cifrado KEY especificada y la función de cifrado de la cadena original en n caracteres en lenguaje C. . . . .

De acuerdo con las reglas de cifrado a continuación, establezca la clave de cifrado KEY especificada y la función de cifrado de la cadena original en n caracteres en lenguaje C. . . . .

No revisé la pregunta detenidamente la última vez, así que ahora modifiqué el programa fuente de acuerdo con las condiciones de la pregunta. Método: utilice una matriz lineal para simular una bobina.

#incluye ltstdio.h gt

#incluye ltstdlib.h gt

#¿Definición? ¿norte? 10//Número de caracteres

#Definición? ¿llave? 6//Clave(1~n)

int? makePassword(char?*palabra, char?*contraseña)

{

int? I = 0; //Recorre los subíndices de la matriz original

int? Verifique [n-1]; // Si se accede a la etiqueta.

int? start = 0; //Apunta a la posición donde está insertada actualmente la cadena original.

int? pos = 0; //Apunta a la posición de inserción en la matriz de texto cifrado.

para(I = 0;i ltn-1;i)? ¿Revisarme? =?0;//Inicializado como no accedido

if(key lt;0 | | key gt=n-1)? ¿devolver? 0; //La clave está fuera de los límites y no puede regresar.

I = 0;

mientras(iniciar lt; n-1)

{

Si(0 = = comprobar[I ])//Si no hay ninguna marca, pos comienza a contar (omitiendo la ubicación donde se almacena el valor).

{

//printf(" check[ d]= d \ n ", I, check[I] // Para realizar pruebas, puede ver el contenido del marca.

if( pos==clave)

{

//printf(" pos = d, contraseña[d]=c\n ", pos, I, palabra [inicio]); // Para realizar pruebas, puede ver el valor almacenado del punto de inserción y el valor del subíndice correspondiente en la matriz original.

pos? =?0;

¿Contraseña[i]? =?word[start];

¿Revisar [yo]? =?1;//Marcar como visitado

}

}

if(i==n-2)? I = 0; //Debido a que palabra [n-1] es el terminador, no participa en el ciclo, es decir, comienza a recorrer la matriz original cuando se recuerda la última letra.

¿Y si? i;

}

Contraseña[n-1]= '\0'; //Fin del texto cifrado con terminador

¿Regresar? 1;

}

int? Señor()

{

¿Ciel? word[n]="it 'Prefecto", contraseña[n]; //Tenga en cuenta que la longitud de la cadena debe ser igual a n-1, dejando uno para el terminador '\0'.

Si (hacer contraseña (palabra, contraseña)== 1)//Imprimir si la conversión se realizó correctamente.

printf(" original: s \ n texto cifrado: s \ n ", palabra, contraseña

¿Regresión? 0;

}