Fíjate que la y sólo la inicializas cuando la declaras, por eso para el primer caso te funciona. Luego vas arrastrando el valor de y en cada solución... Recuerda que sumas los valores ascii de caracteres... (cadena)
Ahora debería funcionar...
			Ahora debería funcionar...
Código (C) [Seleccionar] 
#include<stdio.h>
#include<math.h>
#include<string.h>
char cadena[30];
int y;
int i;
int resultado;
int l;
int main() {
    int i=0;
    int y;
    char nombreArchivoLectura[10];
    char nombreArchivoEscritura[10];
    FILE *archivoLectura=NULL;
    FILE *archivoEscritura=NULL;
    archivoLectura=fopen("in.txt","r");
    archivoEscritura = fopen("salida.txt","w");
    while(!feof(archivoLectura)) {
        y=0;
        fscanf(archivoLectura,"%[^\n]\n",cadena);
        l=strlen(cadena);
        printf("%s: ", cadena);
        for(i=0;i<l+1;i++) y+=(int)cadena[i];
        printf("\n---------------------------------------\n");
        resultado=y%131;
        fprintf(archivoEscritura,"%d\n",resultado);
    }
    fclose(archivoLectura);
    fclose(archivoEscritura);
    return 0;
}
				
