Ecco l'algoritmo modificato, nei casi che ho testato, funzionante.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char v[];
char w[];
int i=0;
int l;
int chiave=30;
main()
{
printf("Inserisci password:\n");
scanf("%s",v);
while(v[i]!='\0')
{
v[i]=v[i]-chiave;
i=i+1;
}
printf("Password codificata:\n%s\n",v);
l=strlen(v);
printf("Inserisci la password:\n");
scanf("%s",w);
i=0;
while(w[i]!='\0')
{
if(w[i]==(v[i]+chiave))
{
i=i+1;
}
else
{
printf("Password errata!\n");
break;
}
}
if(i==l)
{
printf("Password esatta!\n");
}
else if(i!=l)
{
printf("Password errata!\n");
}
system("PAUSE");
}