Título: DUDA-Programación en C Publicado por: mariota1 en 20 Octubre 2012, 10:52 am ENUNCIADO: Escribir un programa en C que calcule la nota media de tres alumnos. Las notas se encuentran en el fichero notas.txt. El resultado se debe añadir al final del mismo fichero con la siguiente frase:"La nota media de los tres alumnos es..."
El codigo que yo escribo es el siguiente: #include <stdio.h> main() { FILE *F; int x,y,z,r; F=fopen("notas.txt","a"); fscanf(F,"%d",&x); fscanf(F,"%d",&y); fscanf(F,"%d",&z); r=x+y+z/3; fprintf(F,"\nLa nota media de los tres alumnos es: %d",r); fclose(F); getch(); } Y el resultado en el fichero de notas.txt es: 4 9 8 La nota media de los tres alumnos es: 2865719 No entiendo porque me da ese resultado, supuestamente la media de los 3 es: 7. Si alguien sabe cual es mi error porfavor que me lo haga saber cuanto antes. ¡Mil gracias! Título: Re: DUDA-Programación en C Publicado por: Slava_TZD en 20 Octubre 2012, 11:55 am Código
Orden de las operaciones (http://es.wikipedia.org/wiki/%C3%81lgebra_elemental#Orden_de_las_operaciones) Código Función fopen (http://c.conclase.net/librerias/?ansifun=fopen) Saludos Título: Re: DUDA-Programación en C Publicado por: mariota1 en 20 Octubre 2012, 12:04 pm Código
Orden de las operaciones (http://es.wikipedia.org/wiki/%C3%81lgebra_elemental#Orden_de_las_operaciones) Código Función fopen (http://c.conclase.net/librerias/?ansifun=fopen) Saludos Lo siento, pero me has dejado nada claro... soy principiante en esto y si no me ofreces una respuesta mas directa, no soy capaz de entender lo que me quieres decir. Aun así gracias por las molestias. Título: Re: DUDA-Programación en C Publicado por: maxim_o en 20 Octubre 2012, 13:19 pm r=(x+y+z)/3;
y lo de la abertura del fichero te ha remitido a una pagina donde te explica un poco los ficheros... Una vez lo abres antes de hacer nada y de leer del fichero tendras que ver si se ha abierto bien , etc... Título: Re: DUDA-Programación en C Publicado por: rir3760 en 21 Octubre 2012, 03:03 am Como solucionar el calculo del promedio ya lo respondió maxim_o (faltaban los paréntesis).
En cuanto a la apertura del archivo te piden que realices dos operaciones: lectura de los tres números y escritura del promedio. Eso no lo puedes hacer con el modo "a" ya que este es un modo de escritura. Debes utilizar el modo "a+" ya que este permite realizar operaciones de escritura (siempre al final del archivo) y de lectura (siempre indicando primero la posición desde donde se lee). Eso en detalle en el vinculo que te indicaron. Parte de las modificaciones a tu programa: Código
También debes evitar el uso de funciones de la biblioteca conio de Borland como "getch", mas información sobre ello en el tema |Lo que no hay que hacer en C/C++. Nivel basico| (http://foro.elhacker.net/programacion_cc/lo_que_no_hay_que_hacer_en_cc_nivel_basico-t277729.0.html). Un saludo |