Dev - C++ - Podrian ayudarme con este programa

   
Vista:

Podrian ayudarme con este programa

Publicado por Lesly (2 intervenciones) el 19/12/2014 03:30:17
Necesito ayuda con este codigo, por que al compilar no me ejecuta el bloque de codigo de if(a==b), se va directamente al else, y no se por que ayuda..,

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
#include <stdio.h>
#include <string.h> 
 
int main()
{
 
	char a[5];
	char b[5];
	int c;
	int d;
	int e;
 
	printf("Ingresa tu primer valor: ");
	scanf("%d",&c);
	printf("Ahora ingresa la literal de tu primer valor: ");
	scanf("%s",a);
	printf("\nIngresa tu segundo valor: ");
	scanf("%d",&d);
	printf("Ahora ingresa la literal de tu segundo valor: ");
	scanf("%s",b);
 
	if(a==b)
	{
		e = c + d;
		printf("Tu resultado es: %d %s",e ,a);
	}
 
	else
 
	{
	printf("Tus literales no son semejantes por lo tanto tu resultado es: ");
	printf("%d%s + %d%s",c ,a ,d ,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

Podrian ayudarme con este programa

Publicado por Thanatos (72 intervenciones) el 19/12/2014 05:52:56
El problema está en la linea donde realizas la comparación de los literales:

1
if (a == b)

Para hacer una comparación de cadenas utiliza la función strcmp(). Esta función es parte de la librería string.h que tienes incluida en tu código.

Modifica esa linea de esta manera:

1
if (strcmp(a, b) == 0)

La función strcmp(), recibe dos cadenas como argumento y devuelve 0 si las cadenas son iguales, cuando el valor que devuelve es diferente de cero, entonces las cadenas son diferentes.

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