(SOLUCIONADO) me dicen si les funciona!!

Iniciado por ;c1v!c, 21 Febrero 2011, 04:39 AM

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

;c1v!c

Hola alguien me podria decir si les compila, ya que lo pruebo en el Dev-C++
y me anda perfecto y lo probe en una shell de ubuntu y no me deja ingresar
S o N me tira q ingrese letra del departamento, pero en el Dev de windows compila y funciona perfecto!

Gracias!

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

int main()
{
int i,j;
char dep,exp;
    for(i=0;i<10;i++)
    {
            for(j=0;j<5;j++)
            {
               printf("Ingrese letra de departamento:");
               scanf("%c",&dep);fflush(stdin);
               
               printf("Ingrese 'S' si pago las expensas o 'N' si no pago expensas:");
               scanf("%c",&exp);fflush(stdin);
               exp=toupper(exp);
               
               if(exp=='N')
                           {printf("\nPiso %d departamento %c no pago expensas!\n",i,dep);}
               else
                   {printf("HOLa carlos!");}
            }
    }
return 0;
}


Littlehorse

fflush(stdin);

Esa linea es lo que te provoca el comportamiento indefinido. Utiliza el buscador del foro y lee las chinchetas.

Saludos
An expert is a man who has made all the mistakes which can be made, in a very narrow field.

Pirata LOL

funciona... si y no  :silbar:
dinos mejor el enunciado del programa pero asi probandolo nomas
el programa nunca se cierra...
sigue pidiendo la letra del apartamento hasta el infinito creo  :rolleyes:
buueno por lo menos hasta unas 10 veces de prueba porq no quise seguir


SUGERENCIA... "coloca el enunciado y asi decirte si hace lo que se pide"  ;)
[center[/center]

;c1v!c

Cita de: Littlehorse en 21 Febrero 2011, 20:03 PM
fflush(stdin);

Esa linea es lo que te provoca el comportamiento indefinido. Utiliza el buscador del foro y lee las chinchetas.

Saludos

Le saque el fflush(stdin); pero sigue andando mal nose por que no me funciona en la shell de linux y en el Dev de win si me funca!

Garfield07

En vez de scanf ("%c"); usa fgetc o getc, pero no scanf ("%c"). A veces da esos errores :P


* Quiero cambiar el mundo, pero estoy seguro de que no me darían el código fuente.
* No estoy tratando de destruir a Microsoft. Ese será tan solo un efecto colateral no intencionado.
* Si compila esta bien, si arranca es perfecto.

¡Wiki elhacker.net!
Un saludo

;c1v!c

me podrias decir como quedaria el codigo cambiando el scanf por las opciones q me diste!
Gracias!

Garfield07

Seguro que no te habría costado mucho a ti...
Aparte, aplaudo tu forma de usar el tabulador para que sea más fácil modificar el código, si olvidar el nombre superdescriptivo de las variables...


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

int main()
{
int i,j, opc;
char letra;

for(i=0;i<10;i++)
{
for(j=0;j<5;j++)
{
printf("Ingrese letra de letra del apartamento: ");
letra = getc (stdin);

printf("1) Pago expensas\t2) No pago expensas\nOpcion: ");
scanf ("%d", &opc);

switch  (opc)
{
case 1 : printf ("\nPiso %d letra del apartamento %c no pago expensas!\n",i,letra); break;
case 2 : printf ("\nHola Carlos!\n"); break;
default: printf ("\nOpcion incorrecta...\n"); break;
}
}
}
return 0;
}

Lo raro es que se me salta el getc del apartamento y no el scanf... xD
Suerte!


* Quiero cambiar el mundo, pero estoy seguro de que no me darían el código fuente.
* No estoy tratando de destruir a Microsoft. Ese será tan solo un efecto colateral no intencionado.
* Si compila esta bien, si arranca es perfecto.

¡Wiki elhacker.net!
Un saludo

;c1v!c

mira puse el codigo q me pasaste y me sigue dando error!!
osea anda perfecto la primera ves y a la segunda ya se rompe, te dejo
una imagen:

Gracias!

http://img213.imageshack.us/img213/15/pantallazong.png

Garfield07

Sí, me pasa lo mismo. La cosa es que no va ni con fgetc ni con getc ni con scanf. Bah, ahora codeo uno con fgets, a lo bruto :P


* Quiero cambiar el mundo, pero estoy seguro de que no me darían el código fuente.
* No estoy tratando de destruir a Microsoft. Ese será tan solo un efecto colateral no intencionado.
* Si compila esta bien, si arranca es perfecto.

¡Wiki elhacker.net!
Un saludo

;c1v!c

Bueno quiero contarles q encontre la solucion casi diriamos de suerte, justo encontre un diagrama de flujo donde tenia el siguiente codigo:

...scanf("%s",&exp)...

Entonces modifique en los dos scanf en lugar de "%c" coloque "%s" y solucione el porblema compila a la perfeccion!!

Ahora voy a investigar por que scanf funciona con "%c" y "%s" por q no tengo ni idea!!

Saludos y gracias!!