Problema para ejecutar.

Dudas sobre los distintos compiladores C/C++ en Linux
Responder
Mensaje
Autor
pichu27
Mensajes: 6
Registrado: 16/09/2011 3:34 pm

Problema para ejecutar.

#1 Mensaje por pichu27 » 16/09/2011 3:44 pm

Hola que tal, me presento, mi nombre es Agustin, y soy de Buenos Aires, Argentina. Hago este tema porque necesito hacer un trabajo practico para la facultad, y necesito que me ayuden especialistas como ustedes!! jeje.
Bueno mi consulta es esta, yo tengo el Ubuntu 11.04 y mi compilador es el Eclipe Galileo.
Cuando hago este programa:
int main(int argc, char **argv)
{
int valorinicial;
printf("introduce un numero: ");
scanf("%i", valorinicial);
if (valorinicial == 13)
{
printf("el valor que ingresaste es 13\n");
}
else
{
printf("el numero que escribiste no es 13 salame\n");
}
}

En la consola me aparece para que introduzca un numero, pero una vez que lo tecleo no me cumple con lo que quiero. Por otro lado, cuando entro a la consola y lo ejecuto como corresponde . Me dice:
Introduzca un numero .. lo pongo
y me devuelve "Violacion de segmento"
pd: el programa me compila y corre lo mas bien, pero cuando lo ejecuto me dice eso. Que hago para que me ande??

Saludos y muchas gracias

Avatar de Usuario
rir3760
Mensajes: 7553
Registrado: 01/10/2004 11:00 pm
Ubicación: Mexico

#2 Mensaje por rir3760 » 16/09/2011 6:29 pm

El error, bastante común en los principiantes, es olvidar utilizar el operador "dirección de" (el '&') en la llamada a scanf, ademas falta incluir el encabezado <stdio.h> y no es necesario declarar la función principal de esa forma ya que no utilizas argumentos pasados mediante la linea de comandos.

El programa corregido es:

Código: Seleccionar todo

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

int main(void)
{
   int valorinicial;
   
   printf("introduce un numero: ");
   fflush(stdout);
   scanf("%i", &valorinicial);
   
   if (valorinicial == 13)
      puts("El valor que ingresaste es 13");
   else 
      puts("El numero que escribiste no es 13 salame");
   
   return EXIT_SUCCESS;
}
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

Responder

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 2 invitados