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

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

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 »

arisma escribió: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

Gracias arisma, solucionado ;) , pero quisiera saber por qué hay que poner (float) declarando una variable que opera con float's.
De todas formas, con los decimales, en realidad no era el número de ceros lo que quería decir xD, era que en vez de salir el resultado correcto, 185,5, me salía 180.0 xD, pero con esto ya está solucionado, gracias a todos ;)
Imagen

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 »

Bright Julen escribió:ero quisiera saber por qué hay que poner (float) declarando una variable que opera con float's.

Perdona, pero la operación es sobre enteros, no sobre flotantes, ya que edad1 y edad2 son int, por tanto la división se hace entera. Luego el resultado de la división entera se asigna a una variable flotante, conviertiendo un número entero en uno flotante. Por eso no te sale el resultado flotante correcto.

El uso de (float) en este contexto, como ha puesto arisma, es lo que se llama en C un cast. Esto obliga a la expresión que venga seguidamente a ser considerada del tipo especificado por el cast independientemente del tipo que tuviera anteriormente. Es mejor evitarla en lo posible, ya que añade confusión. Es mucho mejor declarar las variables con un tipo adecuado para las operaciones que queremos realizar.

PD: me alegra que te hayas animado a hacer los cursillos :oki:
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 »

Eso mismo, xD.

Avatar de Usuario
AbrahamZF
Habitual
Habitual
Mensajes: 359
Registrado: 10 Dic 2009, 00:06
PSN ID: Abraham-ZF
Ubicación: ¡¡¡Mexico!!!

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

Mensaje por AbrahamZF »

tengo un problema con el contador, resulta que todo el contenido sale estatico (windows), dice en un comentario que tenia que poner un numero 5, solo que no supe bien como o donde.

pd: que lastima que ya no vayas a explicar para windows, pero no hay alguna forma de adaptarlo para que funcione en windows?
Psp 3001 = 5.03 GEN-C
Ps3 slim 250 GB = COD:MW 2 [PROTOTYPE] God Of War III COD:BO GTA IVGuitar Hero 5

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 »

AbrahamZF escribió:tengo un problema con el contador, resulta que todo el contenido sale estatico (windows), dice en un comentario que tenia que poner un numero 5, solo que no supe bien como o donde.

pd: que lastima que ya no vayas a explicar para windows, pero no hay alguna forma de adaptarlo para que funcione en windows?


Pon la porción de codigo con la que tienes problemas.

Avatar de Usuario
dark_sasuke
Moderador Global
Moderador Global
Mensajes: 3380
Registrado: 03 Sep 2009, 02:13
Twitter: D4rkyt0

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

Mensaje por dark_sasuke »

AbrahamZF escribió:pd: que lastima que ya no vayas a explicar para windows, pero no hay alguna forma de adaptarlo para que funcione en windows?


pues hombre a mi cuando me da pereza reiniciar y ponerme en linux, o estoy haciendo otra cosa en windows, lo hago en windows y va perfecto :)
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 »

AbrahamZF escribió:tengo un problema con el contador, resulta que todo el contenido sale estatico (windows), dice en un comentario que tenia que poner un numero 5, solo que no supe bien como o donde.

pd: que lastima que ya no vayas a explicar para windows, pero no hay alguna forma de adaptarlo para que funcione en windows?

Como dice Arisma debe de postear el codigo, para saber donde esta el error.
Mayormente hago los programa bajo window y funciona, weno en algunos he tenido error, pero se resuelven.
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 »

Por ahora no debería haber ningún problema en que estos programas sencillos funcionen en Windows, y menos usando Dev-C++.

Como bien dicen, pon tu código, así te podremos ayudar más precisamente ;)
Imagen

Avatar de Usuario
largeroliker
Administrador
Administrador
Mensajes: 8286
Registrado: 03 Sep 2009, 09:46
PSN ID: larger0o
Gamertag Xbox Live: larger0o
Steam ID: larger0o
Twitter: larger0o
Ubicación: Málaga
Contactar:

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

Mensaje por largeroliker »

m0ski, una corrección (si mía a tí XD)


Código: Seleccionar todo

// Incluímos el fichero stdio.h y unistd.h
#include <stdio.h>
// Para Linux:
#include <unistd.h>
// Para Windows (comentar la línea anterior y descomentar la siguiente):
// #include <windows.h>

// Función principal
int main(int argc, char *argv[])
{
  int contador = 0;

  // Escribir el número en pantalla
  printf("%d... ", contador);
  // Actualizar la consola (para que aparezca el anterior printf() inmediatamente
  fflush(0);
  // Sumar 1 a la variable contador
  contador++;
  // Parar 1 MILIsegundo
  sleep(1);

  // Repetimos lo mismo... vamos incrementando "contador" de uno en uno
  printf("%d... ", contador);
  fflush(0);
  contador++;
  sleep(1);

  printf("%d... ", contador);
  fflush(0);
  contador++;
  sleep(1);
 
  printf("%d... ", contador);
  fflush(0);
  contador++;
  sleep(1);

  printf("%d... ", contador);
  fflush(0);
  contador++;
  sleep(1);

  // Justo aquí escribe un 5...
  printf("%d... ", contador);
  fflush(0);
  // ... así que empezamos a restar ;)
  contador--;
  sleep(1);

  // Y lo mismo que antes, pero restando ("contador" ahora va disminuyendo)
  printf("%d... ", contador);
  fflush(0);
  contador--;
  sleep(1);

  printf("%d... ", contador);
  fflush(0);
  contador--;
  sleep(1);

  printf("%d... ", contador);
  fflush(0);
  contador--;
  sleep(1);

  printf("%d... ", contador);
  fflush(0);
  contador--;
  sleep(1);

  printf("%d... ", contador);
  fflush(0);
  contador--;
  sleep(1);

  printf("BOOOOOOM!\n");
  fflush(0);
  sleep(1);
  return 0;
}



Poseso, al igual que en Visual Basic si paramos 1, lo que para es un milisegundo, para parar un segundo hay que parar 1000 ms :)

Y ahora me pongo con la entrada de datos ;)

Saludos! ;)
Imagen
Steam Deck · Xbox Series X · PS5 · Switch · PS Vita · WiiU · PS3 · new 3DS XL · Xbox 360 · PSP · PS2

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 »

Pues non xD

http://www.manpagez.com/man/3/Sleep/

PD: no compares Visual Basura con C POSIX por favor :evil:
Imagen

Responder