Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Calculadora básica en c. Error "Violación de segmento"

Estas en el tema de Calculadora básica en c. Error "Violación de segmento" en el foro de C/C++ en Foros del Web. Hace poco empezé a programar en C (2 días) y quisiera saber si me puedn ayudar con este programa. La idea (muy básica) es introducir ...
  #1 (permalink)  
Antiguo 28/05/2011, 10:35
 
Fecha de Ingreso: mayo-2011
Mensajes: 16
Antigüedad: 13 años, 5 meses
Puntos: 0
Calculadora básica en c. Error "Violación de segmento"

Hace poco empezé a programar en C (2 días) y quisiera saber si me puedn ayudar con este programa. La idea (muy básica) es introducir un código (1 para sumar, 2 para restar, 3 para multiplicar y 4 para dividir) y hacer una operación. Compila correctamente en GCC pero lo probé Debian 6.0 y luego de la primer pregunta me dice "Violación de segmento".
Aquí está el código:
Código C:
Ver original
  1. #include <stdio.h>
  2.  
  3.  
  4.  
  5. int main( void )
  6.  
  7. {
  8.  
  9.     int tipo;
  10.  
  11.     int res;
  12.  
  13.     int mul;
  14.  
  15.     int sum;
  16.  
  17.     int div;
  18.  
  19.  
  20.  
  21.     sum = 1;
  22.  
  23.     res = 2;
  24.  
  25.     mul = 3;
  26.  
  27.     div = 4;
  28.  
  29.  
  30.  
  31.     printf( "¿Qué operación va a realizar ahora?\n" );
  32.  
  33.     printf( "Códigos:\n\t 1 = suma\n\t 2 = resta\n\t 3 = multiplicación\n\t 4 = división\n" );
  34.  
  35.     scanf( "%d", tipo );
  36.  
  37.  
  38.  
  39.     if ( tipo = mul ) {
  40.  
  41.         int factor1;
  42.  
  43.         int factor2;
  44.  
  45.         printf( "\n¿Qué numeros va a multiplicar?" );
  46.  
  47.         scanf( "\n%d X %d", factor1, factor2 );
  48.  
  49.         int multiplicacion;
  50.  
  51.         multiplicacion = factor1 * factor2;
  52.  
  53.         printf( "\n%d por %d es igual a %d ", factor1, factor2, multiplicacion );
  54.  
  55.     }
  56.  
  57.  
  58.  
  59.     if ( tipo = div ) {
  60.  
  61.         int dividendo;
  62.  
  63.         int divisor;
  64.  
  65.         printf( "\n¿Qué numeros va a dividir?" );
  66.  
  67.         scanf( "\n%d : %d", dividendo, divisor );
  68.  
  69.         int cociente;
  70.  
  71.         cociente = dividendo / divisor;
  72.  
  73.         printf( "\n%d divido %d es igual a %d ", dividendo, divisor, cociente );
  74.  
  75.     }
  76.  
  77.  
  78.  
  79.     if ( tipo = sum ) {
  80.  
  81.         int sumando1;
  82.  
  83.         int sumando2;
  84.  
  85.         printf( "\n¿Qué numeros va a sumar?" );
  86.  
  87.         scanf( "\n%d + %d", sumando1, sumando2 );
  88.  
  89.         int suma;
  90.  
  91.         suma = sumando1 + sumando2;
  92.  
  93.         printf( "\n%d más %d es igual a %d ", sumando1, sumando2, suma );
  94.  
  95.     }
  96.  
  97.     if ( tipo = res ) {
  98.  
  99.         int minuendo;
  100.  
  101.         int sustraendo;
  102.  
  103.         printf( "\n¿Qué numeros va a restar?" );
  104.  
  105.         scanf( "\n%d - %d", minuendo, sustraendo);
  106.  
  107.         int diferencia;
  108.  
  109.         diferencia = minuendo - sustraendo;
  110.  
  111.         printf( "\n%d menos %d es igual a %d ", minuendo, sustraendo, diferencia );
  112.  
  113.     }
  114.  
  115.  
  116.  
  117.     return 0;
  118.  
  119.  
  120.  
  121. } /* main finalizes*/
  #2 (permalink)  
Antiguo 28/05/2011, 10:36
 
Fecha de Ingreso: mayo-2011
Mensajes: 16
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Calculadora básica en c. Error "Violación de segmento"

PD: No se porqué aparece con tantos renglones de por medio cada línea de código
  #3 (permalink)  
Antiguo 28/05/2011, 10:53
 
Fecha de Ingreso: abril-2011
Mensajes: 224
Antigüedad: 13 años, 6 meses
Puntos: 8
Respuesta: Calculadora básica en c. Error "Violación de segmento"

Linea 35... no le estás indicando donde guardar la información leeída por scanf.

Tú pusiste scanf("%d", tipo);

Y debería ser:

scanf("%d", &tipo); Con el amperson (&)

Saludos!
  #4 (permalink)  
Antiguo 28/05/2011, 16:51
 
Fecha de Ingreso: mayo-2011
Mensajes: 16
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Calculadora básica en c. Error "Violación de segmento"

Gracias! ahora funciona perfecto...

Etiquetas: calculadora, segmento, violación
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:50.