elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Programación en c [Resuelto]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Programación en c [Resuelto]  (Leído 2,222 veces)
macshivi

Desconectado Desconectado

Mensajes: 19


Ver Perfil
Programación en c [Resuelto]
« en: 25 Junio 2014, 16:34 pm »

Hola a todos!

Hace poco que he empezado a programar en c y ahora mismo estoy dandole a la funcion if... else...
Mi problema es que no consigo detectar cual es el problema en mi codigo, aqui os lo copio:

include <stdio.h>  

 int main()

{ int x=0;
 printf("Introduzca su edad:\n");

 scanf("%i",&x);  

if (x<=17)

{printf("no eres bienvenido!!");}
 
else{ prinf("bienvenido");}

 system("pause");  

return 0; }


Para programar utilizo codeblocks y para compilar GNU GCC Compiller.

Gracias por vuestro tiempo


« Última modificación: 25 Junio 2014, 18:14 pm por 011632 » En línea

eferion


Desconectado Desconectado

Mensajes: 1.248


Ver Perfil
Re: Programación en c [Problema de novato]
« Respuesta #1 en: 25 Junio 2014, 16:50 pm »

En primer lugar, te recomiendo que para el código uses las etiquetas GeSHi... así aparecerá presentado de forma más legible.

Así a bote pronto, veo un problema y una cosa a mejorar:

Problema:
El include debe ir precedido de una almohadilla... sin almohadilla la línea no es válida.

Mejora:
el scanf lo usas con el parámetro %i. %i puede darte resultados inesperados porque interpreta la base del número en base a su formato:
  • 17 -> base 10 -> 17 en base 10
  • 017 -> base 8 -> 15 en base 10
  • 18 -> base 10 -> 18 en base 10
  • 018 -> base 8 -> número no válido

En estos casos casi es mejor usar %d. %d asume que el número va a ser introducido en base 10, con lo que:

  • 17 -> base 10 -> 17 en base 10
  • 017 -> base 10 -> 17 en base 10
  • 18 -> base 10 -> 18 en base 10
  • 018 -> base 10 -> 18 en base 10




En línea

macshivi

Desconectado Desconectado

Mensajes: 19


Ver Perfil
Re: Programación en c [Problema de novato]
« Respuesta #2 en: 25 Junio 2014, 16:53 pm »

Ya he puesto lo que me digiste y sigo teniendo el mismo problema, aqui esta de nuevo el codigo.

#include <stdio.h>



int main()
{
    int x;

    printf("Introduzca su edad:\n");

    scanf("%d",&x);

    if (x<=17)
        printf("fuck you!\n");

    else(x>17);
        prinf("bienvenido.\n");

    system("pause");

    return 0;
}


Gracias de antemano
En línea

AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.696


🏴 Libertad!!!!!


Ver Perfil WWW
Re: Programación en c [Problema de novato]
« Respuesta #3 en: 25 Junio 2014, 16:54 pm »

tambien indenta el codigo no uses:

Código:
if (x<=17)

{printf("no eres bienvenido!!");}
 
else{ prinf("bienvenido");}

Mejor pon:

Código:
if (x<=17)	{
printf("no eres bienvenido!!");
}
else {
prinf("bienvenido");
}

Asi no te perderas entre tu mismo codigo. Creeme lo aprendi a la mala



    else(x>17);


El else no lleva Condicion, y no lleva punto y coma
« Última modificación: 25 Junio 2014, 17:08 pm por Eternal Idol » En línea

leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: Programación en c [Problema de novato]
« Respuesta #4 en: 25 Junio 2014, 17:00 pm »

Amén de lo que te indica eferion en esta línea:

Código
  1. else{ prinf("bienvenido");}

Le falta la "t" al printf.

Te falta la librería stdlib.h par el uso de "system". Fíjate en la parte inferior del programa en los mensajes que indica, ya que por esa ausencia lanza un warning.

Y ya puestos, no hace falta las llaves en los if, else si sólo tienen como cuerpo una línea, dicho a lo breve.

Y ya que empiezas hazlo con buenos hábitos como indentar el código con cierto criterio. Algo como:

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main() {
  5.  int x = 0;
  6.  printf("Introduzca su edad:\n");
  7.  scanf( "%d", &x );
  8.  if ( x <= 17)
  9.    printf("no eres bienvenido!!\n");
  10.  else
  11.    printf("bienvenido\n");
  12.  system("pause");
  13.  return 0;
  14. }

¡¡¡¡ Saluditos! ..... !!!!




EDITO:

La línea:

Código
  1. else(x>17);

sería sin el punto y coma final y con un if:

Código
  1. else if (x>17)

Aunque en este caso lo del if estaría de más, ya que si no es <=17 sólo queda como opción ser >17.

Y para cuando cuelguesel código elige las etiquetas GeSHi y toma la C++ y en medio de las etiquetas Code que aparecen "pegas" tu código. Al no hacerlo de esta manera parte del código no sale correcta, especialmente las matrices.
« Última modificación: 25 Junio 2014, 17:18 pm por leosansan » En línea

eferion


Desconectado Desconectado

Mensajes: 1.248


Ver Perfil
Re: Programación en c [Problema de novato]
« Respuesta #5 en: 25 Junio 2014, 17:19 pm »

Ya he puesto lo que me digiste y sigo teniendo el mismo problema, aqui esta de nuevo el codigo.

Esa respuesta es un poco vaga, no crees??

Si quieres o tienes que meterte en el mundillo de la programación tienes que ponerte un poco las pilas y leer los mensajes de error que van saliendo... con un poco de práctica hasta llegarás a entenderlos. Pero desde luego corregir el primer error y decir "sigo teniendo el mismo problema"... eso no.

Si por problema te refieres a que no compila... mala suerte, eso no es un problema; es el resultado de una serie de errores en tu código... ese es el verdadero problema... y desde luego cada uno de esos problemas requerirá una solución diferente.

Esto te lo digo porque como vayas con esa actitud durante un tiempo la gente se cansará de ayudarte. La gente tiene la mala costumbre de pedir un poco de entusiasmo y esfuerzo... somos así de raros :)
En línea

macshivi

Desconectado Desconectado

Mensajes: 19


Ver Perfil
Re: Programación en c [Problema de novato]
« Respuesta #6 en: 25 Junio 2014, 18:13 pm »

Tienes razón, a partir de ahora no volveré a comportarme así.

Gracias por el consejo
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
resuelto
Programación Visual Basic
usuario oculto 2 2,237 Último mensaje 12 Enero 2009, 00:29 am
por usuario oculto
algunas dudas en programacion BATCH(nuevo en esto de programacion)
Scripting
stock_C 8 9,024 Último mensaje 19 Junio 2009, 18:08 pm
por frank30
Programacion Estructurada Vs Programacion Orientada a Objetos
Programación General
79137913 3 8,165 Último mensaje 1 Junio 2011, 18:02 pm
por 79137913
{RESUELTO} ¿Cómo redimensiono un jPanel? {RESUELTO} « 1 2 »
Java
|Miguel| 12 10,674 Último mensaje 13 Febrero 2012, 15:11 pm
por |Miguel|
[RESUELTO] No consigo limpiar un JTable... [RESUELTO]
Java
|Miguel| 2 29,317 Último mensaje 12 Febrero 2018, 09:06 am
por shoni_isra
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines