[Curso] Introducción a la programación en C (V)

Moderadores: Kravenbcn, largeroliker, fidelcastro, cerealkiller, pspCaracas, m0skit0, LnD, ka69, zacky06

Avatar de Usuario
brujitosexy
Experto
Experto
Mensajes: 1097
Registrado: 03 Sep 2009, 19:30

Re: [Curso] Introducción a la programación en C (V)

Mensaje por brujitosexy »

1-Lo recomendable seria poner getch(); en vez de system(¨pause¨) :?:
(Recuerden que tengo window, por ahora).
Cuando corrija lo de la media, osea ponerla como decimales, subire para el otro capitulo :!:
No quiero dejar lagunas pendientes en algunos ejercicios. :oki:
Linus Torvalds:
“El Software es como el sexo; es mejor cuando es gratis…”

Avatar de Usuario
m0skit0
Administrador
Administrador
Mensajes: 5585
Registrado: 03 Sep 2009, 09:35
Ubicación: 0xdeadbeef

Re: [Curso] Introducción a la programación en C (V)

Mensaje por m0skit0 »

brujitosexy escribió:1-Lo recomendable seria poner getch(); en vez de system(¨pause¨) :?:
(Recuerden que tengo window, por ahora).

En realidad no existe una manera estándar de hacer eso, porque básicamente es un poco... inútil. Pero sí, getch() sería lo más compatible sin llegar a ser estándar tampoco.

brujitosexy escribió:No quiero dejar lagunas pendientes en algunos ejercicios

:oki:
Imagen

Avatar de Usuario
brujitosexy
Experto
Experto
Mensajes: 1097
Registrado: 03 Sep 2009, 19:30

Re: [Curso] Introducción a la programación en C (V)

Mensaje por brujitosexy »

Verificais ahora a ver si esta bien!
Spoiler:

Código: Seleccionar todo

#include <stdio.h>

//Funcion principal
int main(int argc, char *argv[])
{
  // Variables
  char nombre[80];
  char apellido[80];
  char nombre_hermano[80];
  char apellido_hermano[80];
  float edad;
  float edad_hermano;
  float suma;
  float multiplicacion;
  float media;
 
  // Leemos el nombre
  printf("Por favor, introduzca su nombre y apellido: ");
  scanf("%s", &nombre);
  scanf("%s", &apellido);

  // Leemos la edad
  printf("Por favor, introduzca su edad: ");
  scanf("%f", &edad);

  // Leer el nombre del hermano
  printf("Por favor, introduzca el nombre y apellido de su hermano: ");
  scanf("%s", &nombre_hermano);
  scanf("%s", &apellido_hermano);

  // Leer la edad del hermano
  printf("Por favor, introduzca la edad de su hermano: ");
  scanf("%f", &edad_hermano);

  // Calcular valores
  printf("La suma de las edades de %s %s y %s %s es igual a %.2f años\n", nombre, apellido, nombre_hermano, apellido_hermano, edad + edad_hermano);
  printf("La multiplicacion de las edades de %s %s y %s %s es igual a %.2f años\n", nombre, apellido, nombre_hermano, apellido_hermano, edad * edad_hermano);
  printf("La media de las edades de %s %s y %s %s es igual a %.2f años\n", nombre, apellido, nombre_hermano, apellido_hermano, (edad + edad_hermano) / 2);
 
  getch();   
  return 0;
}

Si todo esta bien pasaré a meterle mano al proximo capitulo!!!! ;)
AHhhh, por que no se utiliza #include <unistd.h>, no me gusta dejar lagunas para futuros. ;)
Última edición por brujitosexy el 12 Nov 2009, 22:04, editado 1 vez en total.
Linus Torvalds:
“El Software es como el sexo; es mejor cuando es gratis…”

Avatar de Usuario
m0skit0
Administrador
Administrador
Mensajes: 5585
Registrado: 03 Sep 2009, 09:35
Ubicación: 0xdeadbeef

Re: [Curso] Introducción a la programación en C (V)

Mensaje por m0skit0 »

Yo te lo doy por válido brujitosexy ;) A ver qué dice el maestro arisma :D
Imagen

arisma
Habitual
Habitual
Mensajes: 497
Registrado: 18 Sep 2009, 08:41

Re: [Curso] Introducción a la programación en C (V)

Mensaje por arisma »

El tema de unistd.h es porque es una archivo de cabecera de Unix(MacOS, Linux, ...) y por tema de portabilidad quizás sería preferible evitarlo.

Respecto al codigo fuente, el profe te lo da por bueno y eso me vale ;)

Me referia a mostrar la media con decimales no era necesario poner todas las variables a float xD

Y respecto al tema de nombre y apellidos lo dejaremos tal cuál.

Gracias por el interés.

Un saludo.

Avatar de Usuario
brujitosexy
Experto
Experto
Mensajes: 1097
Registrado: 03 Sep 2009, 19:30

Re: [Curso] Introducción a la programación en C (V)

Mensaje por brujitosexy »

arisma escribió:Me referia a mostrar la media con decimales no era necesario poner todas las variables a float xD

Y respecto al tema de nombre y apellidos lo dejaremos tal cuál.

Gracias por el interés.

Un saludo.

Si, yo se que solo tenia que poner float a la media, pero como no estaba en la casa para probarlo bien, decidi ponerlo todas, lo solucione por que mas anterior se habia dicho de como hacer la divisiones aparescan los decimales.
Es bueno dar repasaditas!!!!
Seguire con el proximo capitulo.
Linus Torvalds:
“El Software es como el sexo; es mejor cuando es gratis…”

arisma
Habitual
Habitual
Mensajes: 497
Registrado: 18 Sep 2009, 08:41

Re: [Curso] Introducción a la programación en C (V)

Mensaje por arisma »

Ya me lo he imagino. No te preocupes.

Ánimo.

Avatar de Usuario
Bright Julen
Experto
Experto
Mensajes: 843
Registrado: 03 Sep 2009, 11:34
PSN ID: BrightJulen
Contactar:

Re: [Curso] Introducción a la programación en C (V)

Mensaje por Bright Julen »

Ejercicio terminado profe:

Código: Seleccionar todo

//Ejercicio de lección V
#include<stdio.h>

int main()
{
    int edad1, edad2;
    //Imprimimos en pantalla que queremos introducir una edad:
    printf("Introduzca una edad: \n");
    //Introducimos una edad:
    scanf("%d", &edad1);
    //Imprimimos en pantalla que queremos introducir otra edad:
    printf("Introduzca otra edad: \n");
    //Introducimos una edad:
    scanf("%d", &edad2);
   
    //Asignamos nombres a las variables con las que operaremos:
    int suma_edad=edad1+edad2;
    int multipli_edad=edad1*edad2;
    float media_edad=(edad1+edad2)/2;
   
    //Imprimimos en pantalla los resultados de las operaciones:
    printf("La suma de las edades es %d, la multiplicacion es %d, y la media es %f.\n", suma_edad, multipli_edad, media_edad);
   
    system("PAUSE");
    return 0;
   
}


Pero tengo un problema al mostrar la media, por ejemplo, si introduzco las edades 154 y 207 (bueno, más bien números xD), los suma y multiplica bien, pero la media sale 180.000000 en vez de 180.5.
Imagen

Avatar de Usuario
wf19
Habitual
Habitual
Mensajes: 194
Registrado: 03 Sep 2009, 02:12

Re: [Curso] Introducción a la programación en C (V)

Mensaje por wf19 »

Bright Julen escribió:pero la media sale 180.000000 en vez de 180.5

La cantidad de ceros mostrados a la derecha despues del punto decimal, son por defecto 6 (Se puede ajustar para muestre menos)

arisma
Habitual
Habitual
Mensajes: 497
Registrado: 18 Sep 2009, 08:41

Re: [Curso] Introducción a la programación en C (V)

Mensaje por arisma »

Sustituye la siguiente linea de codigo

Código: Seleccionar todo

float media_edad=(edad1+edad2)/2;


por

Código: Seleccionar todo

float media_edad= (float) (edad1+edad2) /2;



Si además quieres que se vea con un único decimal. Sustituye %f por %.1f en el printf

Responder