Dev - C++ - Ayuda!! No encuentro el error

 
Vista:
sin imagen de perfil

Ayuda!! No encuentro el error

Publicado por GookS (2 intervenciones) el 15/12/2014 04:33:58
Ayuda con el codigo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include <stdio.h>
 
int main()
	{
 
		int o;
		int a;
		int b;
 
 
		printf( "La incognita esta haciendo una suma o una resta? Indicar con 1 o 2: " );
		scanf("%d",&o);
 
		if (o==1)
 
		{
			printf("Ingresa el primer valor:");
			scanf("%d",&a);
 
			printf("Ingresa el segundo valor:");
			scanf("%d", &b);
 
 
 
				printf("El valor de x es: %d", b-a);
 
		}
 
		else
		if (o==2)
 
		{
			printf("Ingresa el primer valor:");
			scanf("%d",&a);
 
			printf("Ingresa el segundo valor:");
			scanf("%d", &b);
 
 
 
				printf ("El valor de x es: %d", a+b);
		}
 
		return 0;
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 417
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Ayuda!! No encuentro el error

Publicado por Thanatos (199 intervenciones) el 15/12/2014 09:45:37
El código que escribiste compila. No indicaste cuál es el error al que te refieres y tampoco lo que el programa debería hacer exactamente.
Supongo que si el usuario ingresa el número 1 debe realizarse la operación a + b, y si ingresa el número 2 la operación debería ser a - b; si eso es correcto, necesitas cambiar las operaciones de las lineas con comentarios:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <stdio.h>
 
int main() {
    int o;
    int a;
    int b;
 
    printf ( "La incognita esta haciendo una suma o una resta? Indicar con 1 o 2: " );
    scanf ("%d", &o);
 
    if (o == 1) {
        printf ("Ingresa el primer valor: ");
        scanf ("%d", &a);
        printf ("Ingresa el segundo valor: ");
        scanf ("%d", &b);
        printf ("El valor de x es: %d", b - a); // a + b
    } else if (o == 2) {
        printf ("Ingresa el primer valor: ");
        scanf ("%d", &a);
        printf ("Ingresa el segundo valor: ");
        scanf ("%d", &b);
        printf ("El valor de x es: %d", a + b); // a - b
    }
 
    return 0;
}


Si logré adivinar lo que debería hacer el programa, tal vez este otro código te pueda servir. Hace lo mismo que tu programa, pero puedes ingresar la operación directamente, en una sola línea:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
 
int main (void) {
    int operando1;
    int operando2;
    char operador;
 
    printf ("Ingrese la operacion (suma o resta)\nx = ");
    scanf ("%10d %c %10d", &operando1, &operador, &operando2);
 
    if (operador == '+') {
        printf ("x = %d", operando1 + operando2);
    } else if (operador == '-') {
        printf ("x = %d", operando1 - operando2);
    } else {
        printf ("\n** Error **\n");
    }
 
    return 0;
}


Si ingresas valores menores o mayores al rango que puede almacenarse en las variables que utilices (en este caso de tipo int), o si el resultado de la operación está fuera de rango, obtendrás resultados inesperados, con valores que a simple vista no tienen sentido. Para ver los valores máximo y mínimo del tipo int:

1
2
3
4
5
6
7
8
9
#include <stdio.h>
#include <limits.h>
 
int main(void) {
    printf ("int minimo = %+d\n", INT_MIN);
    printf ("int maximo = %+d\n", INT_MAX);
 
    return 0;
}

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar