Este Case no me anda, no me figuro

Iniciado por Anastacio, 16 Febrero 2012, 00:05 AM

0 Miembros y 1 Visitante están viendo este tema.

Anastacio

#include <stdio.h>
#include <conio.h>

int main()
{
int c;
c = 0;
printf("Elija 1 2 o 3");
scanf("%d\n",&c);
    switch (c)
    {
    case 1 :
    c = 10;
    break;
    case 2 :
    c = 50;
    break;   
    case 3 :
    c = 100;
    break;
    }
    printf("c es igual a&d",c);
    getch();
    return 0;
}
Por que no funciona?
You, stop to close my post, you were novice too!!!!!!!!!!!!

rir3760

Lo primero que debes hacer es evitar el uso de la biblioteca conio de Borland, mas información en la pagina |Lo que no hay que hacer en C/C++. Nivel basico|.

El programa debe funcionar correctamente salvo lo antes mencionado y el error en la linea:
printf("c es igual a&d", c);
Donde tienes '&' cuando deberías utilizar '%'.

También debes cambiar esta linea:
scanf("%d\n", &c);
A:
scanf("%d", &c);
Ya que de no hacerlo se presentan problemas (los especificadores de printf y scanf son similares pero no idénticos, en cuestión de dudas nada mejor que un libro).

Un saludo
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language

Anastacio

No se pueden usar saltos de linea en scanf???
You, stop to close my post, you were novice too!!!!!!!!!!!!

rir3760

Si tomas el consejo que mas de un usuario, con la mejor intención, te ha dado: obtener un libro de calidad y leerlo con calma y cuidado encontraras que la mayoría de las respuestas (a las preguntas que realizas) están ahí.

En cuanto a la pregunta: si y no. Puedes utilizar caracteres como ' ', '\t' y '\n' en la cadena de formato de "scanf" pero no se toman literalmente, en su lugar se procesan como la indicacion de "una secuencia de cero o mas caracteres de tipo espacio blanco".

Un saludo
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language

armizh

Ni siquiera es necesario el libro... en la Wikipedia sale bastante explicado (tal vez sacado textual de un libro, no lo se)

Saludos
Visita mi blog:
http://armizh.10h.us/
Fnx, fork de FreeNOS:
Código (sh) [Seleccionar]
git clone https://github.com/armizh/Fnx
Hamster, Entorno Integrado de Desarrollo C/C++:
Código (sh) [Seleccionar]
git clone https://github.com/armizh/Hamster

Caster

Como dijo rir3760, quita la biblioteca <conio.h> y sustituye
getch();

Por:
getchar();

Saludos