Título: Suma de ascii Publicado por: sheva777 en 31 Marzo 2013, 00:08 am Lo que pasa es que tengo que crear un programa que lea un archivo de entrada y me genere otro de salida el código de dispersión de cada una de las cadenas calculado de la siguiente forma: Sume los ASCII de los caracteres de cada cadena y al final saque módulo 131. Por ejemplo, para la cadena "enero" los ASCII son 101, 110, 101, 114 y 111, por lo que la suma es 537 y al sacar módulo 131 se obtiene 13.
He creado el programa pero solo me saca el resultado de enero correctamente y los demas ya no, mi duda es por que es que pasa esto. Les dejo el codigo que he creado, espero y me puedan orientar para resolver la duda, de ante mano muchas gracias. archivo de entrada enero febrero marzo abril me genera este archivo de salida 13 ese valor es el único correcto 99 128 126 40 codigo #include<stdio.h> #include<math.h> #include<string.h> char cadena[30]; int y; int i; int resultado; int l; main() { int i=0; int y=0; char nombreArchivoLectura[10]; char nombreArchivoEscritura[10]; FILE *archivoLectura=NULL; FILE *archivoEscritura=NULL; archivoLectura=fopen("entrada.txt","r"); archivoEscritura = fopen("salida.txt","w"); while(archivoLectura == NULL) { printf("El archivo no pudo abrirse\n"); printf("Nombre de arcivo de Lectura con extension:"); scanf("%s",&nombreArchivoLectura); } while(!feof(archivoLectura)) { fscanf(archivoLectura,"%[^\n]\n",cadena); l=strlen(cadena); for(i=0;i<l+1;i++) { y=y+cadena; } printf("---------------------------------------\n"); resultado=y%131; fprintf(archivoEscritura,"%d\n",resultado); } fclose(archivoLectura); fclose(archivoEscritura); } Título: Re: Suma de ascii Publicado por: BatchianoISpyxolo en 31 Marzo 2013, 03:16 am 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... Código
Título: Re: Suma de ascii Publicado por: sheva777 en 31 Marzo 2013, 04:35 am tenias razon ese era mi error, muchas gracias por resolverme la duda, ya quedo ;-)
Título: Re: Suma de ascii Publicado por: do-while en 31 Marzo 2013, 11:59 am ¡Buenas!
Revisa el código. A parte de lo que ya te han dicho, aquí tienes un posible bucle infinito: Código
Si el archivo desde el que lees los datos no puede abrirse, por mucho que leas el nuevo nombre de fichero, si no intentas abrir de nuevo el fichero el puntero seguirá siendo NULL. ¡Saludos! |