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

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

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

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

Mensaje por arisma »

Estás recogiendo los números como cadenas, en lugar de como float.

Ahora lo repaso pero sustituye %s por %f

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

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

Mensaje por dark_sasuke »

arisma escribió:Estás recogiendo los números como cadenas, en lugar de como float.

Ahora lo repaso pero sustituye %s por %f


si arisma, ya cambia %f por %s en el segundo codigo que puse.
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 (VI)

Mensaje por brujitosexy »

Vamos a ver si esta bien estos:
1er ejercicio
Spoiler:
#include <stdio.h>

int main(int argc, char *argv[])
{
int numero_secreto;
int numero_elegido;

// El jugador #1, tomará un numero, lo cual será secreto, para que sea adivinado por el jugador #2
printf("Jugador #1 pregunta cual es el numero secreto desde el 0 hasta el 9:\n");
scanf("%d", &numero_secreto);

printf("Jugador #2 responde:\n");
scanf("%d", &numero_elegido);

//Si el numero elegido es igual que el numero secreto
if(numero_elegido == numero_secreto)
{
printf("\nFelicidades lo has logrado!!!\n");
printf("Le lees la mentes a los demas!!!\n");
}

//Si el numero elegido es menor que el numero secreto
else if(numero_elegido < numero_secreto)
{
printf("\nHas fallado!\n");
printf("Vuelve a intentarlos!\n");
}

//Si el numero elegido es mayor que el numero secreto
else if(numero_elegido > numero_secreto)
{
printf("\nHas fallado!\n");
printf("Vuelve a intentarlo!\n");
}

getch();
return 0;
}


2do ejercicio
Spoiler:
#include <stdio.h>

int main(int argc, char *argv[])
{
int altura;
int ancho;

// Determinar cual tiene mayor longitud de la altura ó el ancho del terreno (expresado en mt)
printf("Cual es la longitud de la parte alta (expresado en mt)? ");
scanf("%d", &altura);

printf("Cual es la longitud de la parte ancha (expresado en mt)? ");
scanf("%d", &ancho);

//Si la altura es igual que el ancho del terreno
if(altura == ancho)
{
printf("\nAmbos poseen la misma longitud!!!\n");
}

//Si la altura es menor que el ancho del terreno
else if(altura < ancho)
{
printf("\nLa parte ancha del terreno posee mayor longitud que la parte alta\n");
}

//Si la altura es mayor que el ancho del terreno
else if(altura > ancho)
{
printf("\nLa parte alta del terreno posee mayor longitud que la parte ancha\n");
}

getch();
return 0;
}


3er ejercicio
Spoiler:
#include <stdio.h>

int main(int argc, char *argv[])
{
int arroz;
int trigo;

// Determinar cual es el cuadrado de los sacos de arroz y el trigo
printf("\nCual es el cuadrado del peso del saco de arroz (exprezado en lb)? ");
scanf("%d", &arroz);

printf("\nCual es el cuadrado del peso del saco de trigo (exprezado en lb)? ");
scanf("%d", &trigo);

// Extrayendo el cuadrado del arroz y el del trigo

printf("\nEl cuadrado del peso del arroz es: %d", arroz * arroz);
printf("\nEl cuadrado del peso del trigo es: %d", trigo * trigo);

//Si el cuadrado del peso del saco del arroz es igual que el del trigo
if(arroz == trigo)
printf("\nAmbos sacos tienen el mismo peso!!!\n");

//Si el cuadrado del peso del saco de arroz es menor que el del trigo
if(arroz < trigo)
printf("\nEl saco del trigo pesa mas que el del arroz.\n");

//Si el cuadrado del peso del saco de arroz es mayor que el del trigo
if(arroz > trigo)
printf("\nEl saco del arroz pesa mas que el del trigo.\n");

getch();
return 0;
}

El ultimo me esta dando dificultad de hacerlo, pero veremos en que parara.
Última edición por brujitosexy el 13 Nov 2009, 22:35, editado 1 vez en total.
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 (VI)

Mensaje por arisma »

Sobre el primer ejercicio y no me lo tengas en cuentas soy un quisquilloso.

Si los mensanjes van a ser los mismos para mayor y menor, agrupalos en uno y no controlas que los números esten en rango(0..9) ;)


Sobre el segundo sobra una llave final(}), no es para tener en cuenta jeje.

Común abres llaves en los if cuando sólo ejecutas un comando de la condición. Y el último vale con else, no hace falta else if.

Sobre el tercero, pides el cuadrado y luego vuelves a multiplicar(no lo entiendo, no digo que esté mal eh, xD)
Y es curioso que no uses aquí else if.

Un saludo.

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 (VI)

Mensaje por m0skit0 »

No he podido probarlos, pero tienen pinta de estar bien aparte de lo comentado por arisma. Buen curro brujitosexy, espero que sigas con estos ánimos :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 (VI)

Mensaje por brujitosexy »

arisma escribió:Si los mensanjes van a ser los mismos para mayor y menor, agrupalos en uno y no controlas que los números esten en rango(0..9) ;)

Esta pensando en eso mismo anoche, pero lo deje asi por que era un poquito tarde de la noche, cuando este en la casa tratare de ponerlo asi, como dices ;)
Aunque yo estaba tratando de ponerlese (diferente) en ves de utilizar mayor y el menor, pero como no se muy bien como hacerlo,lo hice por parte.
segun vi hoy en algun tuto que para ponerque algo sea difeente a otro seria asi !=, estaria bien esta forma :?:

arisma escribió:Sobre el segundo sobra una llave final(}), no es para tener en cuenta jeje.

Ya lo arregle, parece ser que tenia esa } en el bloc de nota donde lo copie para poderlo postear aqui (por que tengo problema con el internet y lo posteo desde un ciber).

arisma escribió:Común abres llaves en los if cuando sólo ejecutas un comando de la condición. Y el último vale con else, no hace falta else if.
Lo tomare en cuenta, pero 1ro lo verificare. :oki:

arisma escribió:Sobre el tercero, pides el cuadrado y luego vuelves a multiplicar(no lo entiendo, no digo que esté mal eh, xD)
Y es curioso que no uses aquí else if.

Parce ser que nolo habia puesto entre (), para que se entienda mejor.
Osea si tengo (a*a)=a^2 o mejor dicho si multiplico la misma cifra el resultado sera la potencia de 2, me base en estos.

Y acerca de else if, me daba error cuando lo iba ejecutar (si no era que yo hacia algo mal, mas tarde tratares de ver bien.)
Última edición por brujitosexy el 14 Nov 2009, 00:46, editado 2 veces 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 (VI)

Mensaje por m0skit0 »

brujitosexy escribió:Aunque yo estaba tratando de ponerlese (diferente) en ves de utilizar mayor y el menor, pero como no se muy bien como hacerlo,lo hice por parte.

Creo que lo que arisma quiere decir es que tienes el mismo mensaje para cuando no son iguales. Si no son iguales y quieres poner el mismo mensaje, no te hace falta volver a ahcer ninguna comparación, esto es

Código: Seleccionar todo

if (a == b)
   printf("Son iguales!\n");
else
   printf("Lo siento, no son iguales :(\n");


brujitosexy escribió:Parce ser que nolo habia puesto entre (), para que se entienda mejor.
Osea si tengo (a*a)=a^2 o mejor dicho si multiplico la misma cifra el resultado sera la potencia de 2, me base en estos.

Creo que arisma te indica que al pedir el dato, pides el cuadrado del peso y luego vuelves a calcular el cuadrado:

brujitosexy escribió:printf("\nCual es el cuadrado del peso del saco de arroz (exprezado en lb)? ");
brujitosexy escribió:printf("\nEl cuadrado del peso del arroz es: %d", arroz * arroz);

En todo caso, pide el peso (no el cuadrado del peso) y ya lo calculas :)

Y en cuanto al else if, deberías usarlo, ya que sino siempre comparas 3 veces, lo cual es un poco inútil si alguna de las anteriores condiciones es cierta. Me explico: las condiciones de los if siempre se van a evaluar, pero las de un else if sólo se evalúan si el if anterior es falso.
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 (VI)

Mensaje por brujitosexy »

Le he hecho algunas correciones, verificais si esta bien ahora!
Aunque al 1er ejercicio tuve que ponerle != para diferenciarlo, debido a que no encontre otra forma, aparte de que habia puesto anteriormente.
Spoiler:

Código: Seleccionar todo

#include <stdio.h>

int main(int argc, char *argv[])
{
   int numero_secreto;
   int numero_elegido; 
   
   // El jugador #1, tomará un numero, lo cual será secreto, para que sea adivinado por el jugador #2
   printf("Jugador #1 pregunta cual es el numero secreto desde el 0 hasta el 9:\n");
   scanf("%d", &numero_secreto);
   
   printf("Jugador #2 responde:\n");
   scanf("%d", &numero_elegido);
 
   //Si el numero elegido es igual que el numero secreto
   if(numero_elegido == numero_secreto)
   {
   printf("\nFelicidades lo has logrado!!!\n");
   printf("Le lees la mentes a los demas!!!\n");
   }               
   
   //Si el numero elegido es diferente que el numero secreto
   else if(numero_elegido != numero_secreto)
   {
   printf("\nHas fallado!\n");
   printf("Vuelve a intentarlos!\n");
   }   
   getch();   
   return 0;
}


Lo del 2do fue que se le cruzo una }, en el bloc de nota. :juasjuas:

El 3er.
Spoiler:

Código: Seleccionar todo

#include <stdio.h>

int main(int argc, char *argv[])
{
   int arroz;
   int trigo; 
   
   // Determinar cual es el cuadrado de los sacos de arroz y el trigo
   printf("\Con  este  programas  verificaremos  cual  cuadrado es mayor o iguales de estos alimentos:");
   printf("\nIntroduciendo el peso del saco de arroz (exprezado en lb): ");
   scanf("%d", &arroz);
   printf("\nIntroduciendo el peso del saco de trigo (exprezado en lb): ");
   scanf("%d", &trigo);
   
   // Extrayendo el cuadrado del arroz y el del trigo
   
   printf("\nEl resultado del cuadrado del arroz es: %d", arroz * arroz);           
   printf("\nEl resultado del cuadrado del trigo es: %d", trigo * trigo);

   //Si el cuadrado del peso del saco del arroz es igual que el del trigo
   if(arroz == trigo)
   printf("\nEl cuadrado de ambos alimentos son iguales!!!\n");
                  
   //Si el cuadrado del peso del saco de arroz es menor que el del trigo
   else if(arroz < trigo)
   {
   printf("\nEl cuadrado mayor es el del: trigo");
   }
     
   //Si el cuadrado del peso del saco de arroz es mayor que el del trigo
   else if(arroz > trigo)
   {
   printf("\nEl cuadrado mayor es el del: arroz");
   }   
   getch();   
   return 0;
}

Esperais comentarios :!:
El 4to ejercicio acerca de la clasificacion de que si es par ó impar, es para un numero especifico o para todos (teniendo un rango ej: desde el 1 hasta el 9) :?:
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 (VI)

Mensaje por arisma »

Has acertado de lleno, m0squit0

No te lies con !=, no van por ahí los tiros, sino más bien que en el último sino de la condición no es necesario poner sino si.

Con ejemplo,

Spoiler:

Código: Seleccionar todo

if(numero_elegido == numero_secreto)
   {
   printf("\nFelicidades lo has logrado!!!\n");
   printf("Le lees la mentes a los demas!!!\n");
   }               
   
   //Si el numero elegido es diferente que el numero secreto
   else if(numero_elegido != numero_secreto)
   {
   printf("\nHas fallado!\n");
   printf("Vuelve a intentarlos!\n");
   }   


Pasaría a
Spoiler:

Código: Seleccionar todo

if(numero_elegido == numero_secreto)
   {
   printf("\nFelicidades lo has logrado!!!\n");
   printf("Le lees la mentes a los demas!!!\n");
   }               
   
   //Si el numero elegido es diferente que el numero secreto
   else
   {
   printf("\nHas fallado!\n");
   printf("Vuelve a intentarlos!\n");
   }   


No hace falta pone else if(condición). Lo mismo para cuando son 3 if

Respecto al 4º ejercicio no te preocupes por el rango, simplemente un entero. Ya que la mayoría de las veces no estamos comprobando que esté en dicho rango el número.

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

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

Mensaje por brujitosexy »

Entonces el 1ro quedaria asi:
Spoiler:

Código: Seleccionar todo

#include <stdio.h>

int main(int argc, char *argv[])
{
   int numero_secreto;
   int numero_elegido; 
   
   // El jugador #1, tomará un numero, lo cual será secreto, para que sea adivinado por el jugador #2
   printf("Jugador #1 pregunta cual es el numero secreto desde el 0 hasta el 9:\n");
   scanf("%d", &numero_secreto);
   
   printf("Jugador #2 responde:\n");
   scanf("%d", &numero_elegido);
 
   //Si el numero elegido es igual que el numero secreto
   if(numero_elegido == numero_secreto)
   {
   printf("\nFelicidades lo has logrado!!!\n");
   printf("Le lees la mentes a los demas!!!\n");
   }               
   
   //Si el numero elegido es diferente que el numero secreto
   else
   {
   printf("\nHas fallado!\n");
   printf("Vuelve a intentarlos!\n");
   }   
   getch();   
   return 0;
}

Lo raro era que antes de yo publicar el 1ro, lo estaba haciendo asi, pero me daba un error, parece ser que yo tenia algo mal puesto.
Entonces se da por valido los 3 ejercicios :?:
Linus Torvalds:
“El Software es como el sexo; es mejor cuando es gratis…”

Responder