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

[SOLUCIONADO] C base: novato al ataque.

Estas en el tema de C base: novato al ataque. en el foro de C/C++ en Foros del Web. Güenas y no tan güenas. Hace como una semana empecé a INTENTAR aprender a programar en C. Llevo unos ejercicios y los voy haciendo como ...
  #1 (permalink)  
Antiguo 06/06/2014, 10:20
Avatar de caillounazi  
Fecha de Ingreso: junio-2014
Mensajes: 2
Antigüedad: 9 años, 10 meses
Puntos: 0
Pregunta C base: novato al ataque.

Güenas y no tan güenas. Hace como una semana empecé a INTENTAR aprender a programar en C. Llevo unos ejercicios y los voy haciendo como puedo. Si el compilador me da error puedo, más-menos, suponer donde está e intentar solucionarlo, pero cuando me compila, pero el resultado del programa no es el esperado, me pierdo.
Si alguien sería tan amable de darme una ayudita diciéndome dónde he fallado en el siguiente programa, se lo agradecería.
No busco una solución, sino un camino:



El ejercicio pide un programa al cual se le den tres angulos y determine si se trata de un ángulo válido o inválido, y, en caso de que sea válido, determinar si es equilátero, isósceles o escaleno. He aquí el código:

Código C:
Ver original
  1. #include <stdio.h>
  2.  
  3. void main() {
  4. int ang1, ang2, ang3, sumang;
  5.  
  6. /* declaración de variables. cada variable es un ángulo, menos la última, la cual  
  7. representa la suma de los mismos */
  8.  
  9. printf("Introduzca el primer ángulo: ");
  10. scanf("%d", &ang1);
  11. printf("Introduzca el segundo ángulo: ");
  12. scanf("%d", &ang2);
  13. printf("Introduzca el segundo ángulo: ");
  14. scanf("%d", &ang3);
  15.  
  16. sumang=ang1+ang2+ang3;
  17.  
  18. /*sumang será igual a 180 para ser un ángulo válido.*/
  19.  
  20. if (sumang!=180) printf("El triángulo no es válido.\n");
  21.   else { if (ang1=ang2=ang3) printf("Es un triángulo equilátero.\n");
  22.      /* si los tres ángulos son iguales, entonces será equilátero */
  23.         else
  24.             if ((ang1!=ang2!=ang3))
  25.                 /* si los tres ángulos son distintos unos de otros, entonces será escaleno*/
  26.                 printf("Es un triángulo escaleno.\n");
  27.                     else  printf("Es un triángulo isósceles.\n");
  28.                     }
  29.  
  30.  
  31. }


el programa me compila, todo bien. cuando pruebo, efectivamente, me distingue entre ángulos válidos y no válidos, pero cuando viene la miga de detectar si son equilateros, isósceles o escalenos, no lo hace como es debido.



PS: ¡por favor, no me matéis si es muy obvio para vosotros!
  #2 (permalink)  
Antiguo 06/06/2014, 10:28
 
Fecha de Ingreso: junio-2008
Ubicación: Seattle, USA
Mensajes: 733
Antigüedad: 15 años, 10 meses
Puntos: 61
Respuesta: C base: novato al ataque.

Estas asignando ( = ) , no comparando ( == ).

Las asignaciones se pueden hacer todas de una vez. Las comparaciones hay que hacerlas tomando los elementos de a 2.
__________________
Visita mi perfil en LinkedIn
  #3 (permalink)  
Antiguo 06/06/2014, 10:35
Avatar de caillounazi  
Fecha de Ingreso: junio-2014
Mensajes: 2
Antigüedad: 9 años, 10 meses
Puntos: 0
Respuesta: C base: novato al ataque.

joé, es verdad.. vaya tontería. ¡gracias!

Etiquetas: Ninguno
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 10:47.