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

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

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

Mensaje por m0skit0 »

No, brujitosexy, no me distraigas al alumnado :lol: El programa no debe aceptar números fuera del rango 0-100 (ambos inclusive). Si introduces 101, debe mandar un mensaje de número incorrecto, no decir que está en la undécima decena.
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 (VII)

Mensaje por brujitosexy »

m0skit0 escribió:No, brujitosexy, no me distraigas al alumnado :lol: El programa no debe aceptar números fuera del rango 0-100 (ambos inclusive). Si introduces 101, debe mandar un mensaje de número incorrecto, no decir que está en la undécima decena.
Ok, me he dado cuenta que es hasta 100.
Era que no me habia fijado lo que pedia en esa practica.
Linus Torvalds:
“El Software es como el sexo; es mejor cuando es gratis…”

Puzky
Experto
Experto
Mensajes: 825
Registrado: 07 Oct 2009, 22:09
PSN ID: Puzky

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

Mensaje por Puzky »

Ya estan arrglados:
El primero
Spoiler:

Código: Seleccionar todo

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
  //Variable
  int numero;
  //Escaneo de datos
  printf("Introduce un numero entre el 1 y el 100: ");
  scanf("%d", &numero);
  //Condicionales
  if (numero > 100)
      printf("Entre el 1 y el 100, Dahh!!!");
  else
  numero = numero/10;
 
  switch(numero)
  {
    case 0:
         printf("El %d esta en la primera decena", numero);
         break;
    case 1:
         printf("El %d esta en la segunda decena", numero);
         break;
    case 2:
         printf("El %d esta en la tercera decena", numero);
         break;
    case 3:
         printf("El %d esta en la cuarta decena", numero);
         break;
    case 4:
         printf("El %d esta en la quinta decena", numero);
         break;
    case 5:
         printf("El %d esta en la sexta decena", numero);
         break;
    case 6:
         printf("El %d esta en la septima decena", numero);
         break;
    case 7:
         printf("El %d esta en la octava decena", numero);
         break;
    case 8:
         printf("El %d esta en la novena decena", numero);
         break;
    case 9:
         printf("El %d esta en la decima decena", numero);
         break;
    case 10:
         printf("EL 100 =P");
         break;
}
  return 0;
}


El segundo:
Spoiler:

Código: Seleccionar todo

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
    //Variables
    float num1, num2;
    char ope;
    //Escaneo de datos
    printf("Escribe un numero: ");
    scanf("%f", &num1);
    printf("Escribe otro numero: ");
    scanf("%f", &num2);
    printf("Que operacion deseas realizar?  1(+ 2)- 3)* 4)/");
    scanf(" %c", &ope);
    //Opciones de operaciones
   
    switch(ope)
{
    case '1':
         printf("El resultado es: %f", num1 + num2);
         break;
    case '2':
         printf("El resultado es: %f", num1 - num2);
         break;
    case '3':
         printf("El producto es: %f", num1 * num2);
         break;
    case '4':
         printf("El resultado es: %f", num1/num2);
         break;
    default:
         printf("Solo es para operaciones basicas si buscas algo mas compleja usa la calculadora =P");
         break;
}
  return 0;
}

Avatar de Usuario
finfantasy
Habitual
Habitual
Mensajes: 153
Registrado: 15 Oct 2009, 19:00

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

Mensaje por finfantasy »

Fijate que en el primer ejercicio, si introduces números del 100 al 109, todos te van a decir que es el 100, cuidado con eso, a ver como puedes arreglarlo.

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

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

Mensaje por brujitosexy »

finfantasy escribió:Fijate que en el primer ejercicio, si introduces números del 100 al 109, todos te van a decir que es el 100, cuidado con eso, a ver como puedes arreglarlo.

Eso es lo que moskito (y un poquito yo), estamos tratando de que el entienda.

La solucion es mucho mas facil de que el piensas. :mrgreen:
Linus Torvalds:
“El Software es como el sexo; es mejor cuando es gratis…”

Puzky
Experto
Experto
Mensajes: 825
Registrado: 07 Oct 2009, 22:09
PSN ID: Puzky

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

Mensaje por Puzky »

Ya esta arrglado eso en el ultimo programa que subi.. Por lo menos en mi PC al poner 101-109 me aparece : Entre el 1 y 100 Dah!!

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

Mensaje por m0skit0 »

Puzky escribió:Por lo menos en mi PC al poner 101-109 me aparece : Entre el 1 y 100 Dah!!

Sí, ahora está bien esa parte. Pero ahora tienes otro error:

Código: Seleccionar todo

m0skit0@sodiet:~/Temp$ ./prueba 
Introduce un numero entre el 1 y el 100: 5
El 0 esta en la primera decena

Por favor, por enésima vez, probad los programas antes de postearlos. Probar no significa poner 2 números y si funcionan es que funciona, sino probar un poco de todo (un número en la primera decena, uno en la segunda, etc...).
Imagen

Puzky
Experto
Experto
Mensajes: 825
Registrado: 07 Oct 2009, 22:09
PSN ID: Puzky

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

Mensaje por Puzky »

Ya esta m0ski, perdon por no probar todo. Ahora si probe cada decena

Spoiler:

Código: Seleccionar todo

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
  //Variable
  int numero, res;1
  //Escaneo de datos
  printf("Introduce un numero entre el 1 y el 100: ");
  scanf("%d", &numero);
  //Condicionales
  if (numero > 100)
      printf("Entre el 1 y el 100, Dahh!!!");
  else
  res = numero/10;
 
  switch(res)
  {
    case 0:
         printf("El %d esta en la primera decena", numero);
         break;
    case 1:
         printf("El %d esta en la segunda decena", numero);
         break;
    case 2:
         printf("El %d esta en la tercera decena", numero);
         break;
    case 3:
         printf("El %d esta en la cuarta decena", numero);
         break;
    case 4:
         printf("El %d esta en la quinta decena", numero);
         break;
    case 5:
         printf("El %d esta en la sexta decena", numero);
         break;
    case 6:
         printf("El %d esta en la septima decena", numero);
         break;
    case 7:
         printf("El %d esta en la octava decena", numero);
         break;
    case 8:
         printf("El %d esta en la novena decena", numero);
         break;
    case 9:
         printf("El %d esta en la decima decena", numero);
         break;
    case 10:
         printf("EL 100 =P");
         break;
}
  return 0;
}

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

Mensaje por m0skit0 »

Puzky escribió:int numero, res;1

Te sobra el 1 al final.

En este caso, tienes un error de metodología: usas la variable res (te aconsejo que la llames más explícitamente resultado, o mejor aún, decena), pero no le das un valor predeterminado, sino que se lo da el sistema. Esto puede hacer que en determinados momentos, el programa no funcione como se esperaba. Pero sólo muy contadas veces funcionará de manera no deseada, y eso hará que en un futuro corregir ese problema se convierta en un quebradero de cabeza. Es mejor hacerlo bien desde un principio y evitar futuros problemas ;)
Imagen

Puzky
Experto
Experto
Mensajes: 825
Registrado: 07 Oct 2009, 22:09
PSN ID: Puzky

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

Mensaje por Puzky »

Ese 1 se me fue, no es parte del programa. En cuanto a lo de res lo cambiare.. Pero si le estoy dando un valor no?

Código: Seleccionar todo

res = num/10


O como se lo puedo dar?

Responder