Foros aprenderaprogramar.com
Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: Dimitar Stefanov en 04 de Julio 2016, 19:03
-
Buenas tardes. Dejo una posible solución del ejercicio CU00537F del curso aprende a programar en lenguaje C desde cero.
EJERCICIO
Crea un programa que pida 3 números al usuario y guarde 4 líneas en un archivo denominado datos.txt. El contenido de las líneas debe ser el siguiente: las 3 primeras líneas, cada uno de los datos proporcionados. La cuarta línea, el valor medio de los tres datos anteriores.
Ejemplo: el usuario introduce como números 10, 14, 31. El archivo creado deberá contener lo siguiente:
10
14
31
18.333333
#include <stdio.h>
#include <stdlib.h>
int main() {
int num[3], i, media;
for(i=0; i<3; i++){
printf("Introduzca un n%cmero entero: ", 163);
scanf("%d", &num[i]);
}
media = (num[0]+num[1]+num[2])/3;
FILE*fichero;
fichero = fopen("archivo01.txt","wt");
fprintf(fichero, "%d\n%d\n%d\n%d", num[0], num[1], num[2], media);
fclose(fichero);
printf("Proceso completo");
return 0;
}
Gracias.
-
Hola dimiste.
De la forma que resuelves el ejercicio el resultado de la media no muestra decimales, y tendría que permitir tener decimales, como se ve en el ejemplo del enunciado.
Saludos. ;D
-
Buenas, Pedro.
Gracias por tu corrección. Entonces el código debería ser así:
#include <stdio.h>
#include <stdlib.h>
int main() {
int num[3], i;
double media;
for(i=0; i<3; i++){
printf("Introduzca un n%cmero entero: ", 163);
scanf("%d", &num[i]);
}
media = (num[0]+num[1]+num[2])/3;
FILE*fichero;
fichero = fopen("archivo01.txt","wt");
fprintf(fichero, "%d\n%d\n%d\n%lf", num[0], num[1], num[2], media);
fclose(fichero);
printf("Proceso completo");
return 0;
}
Gracias y saludos.
-
Esta línea:
media = (num[0]+num[1]+num[2])/3;
debería quedar así:
media = (num[0]+num[1]+num[2])/3.0;
Si no pones"3.0" solo tomará la parte entera del resultado.
Saludos.
-
Buenas tardes, Pedro.
Gracias por corregirme el ejercicio.
Sí, tienes razón, ahora cuando ví tu corrección me acordé de lo que me dijiste ayer en una de las otras correcciones y del hilo:
https://www.aprenderaprogramar.com/foros/index.php?topic=4726.msg19246#msg19246 (https://www.aprenderaprogramar.com/foros/index.php?topic=4726.msg19246#msg19246)
jeje. No lo tendré que olvidar.
Saludos.