elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  ayuda con mi primera calculadora
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ayuda con mi primera calculadora  (Leído 2,410 veces)
angardo

Desconectado Desconectado

Mensajes: 7


Ver Perfil
ayuda con mi primera calculadora
« en: 2 Julio 2017, 02:14 am »

hola, soy nuevo en en lenguaje de c y quisiera saber cual es mi error, mi código es el siguiente:
Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <math.h>
  4. int main(){
  5. float numero1,numero2, resultado;
  6. char signo;
  7. printf("pot = potencia \n");
  8. printf("raiz2 = raiz cuadrada \n");
  9. printf("* = multiplicacion \n");
  10. printf("/ = division\n");
  11. printf("+ = suma\n");
  12. printf("- = resta\n");
  13. printf("ingrese la operacion que desee realizar:\n");
  14. scanf("%c",&signo);
  15. printf("ingrese el primer numero:\n");
  16. scanf("%f",&numero1);
  17. if (signo!= "raiz2" ){
  18. printf("ingrese el segundo numero:\n");
  19.    scanf("%f",&numero2);
  20. }
  21.  
  22. switch(signo){
  23. case "raiz2":
  24. resultado=sqrt(numero1);
  25. case "pot":
  26. resultado=pow(numero1,numero2);
  27. case "*":
  28. resultado= numero1*numero2;
  29. case "/":
  30. resultado=numero1/numero2;
  31. case "+":
  32. resultado=numero1+numero2;
  33. case "-":
  34. resultado=numero1 - numero2;
  35. default:
  36. printf("no podemos realizar esa operacion!\n");
  37.    }
  38.    printf("el resutado es:%f  \n",resultado );
  39.    system("pause");
  40.    return 0;
  41. }
  42.  

a la hora de compilar el error que me muestra en el if es:
comparison between pointer and integer
 
y en cada uno de los case es:

case label does not reduce to an integer constant


que puedo hacer para solucionarlo y por qué me sale este error?


· Los códigos deben ir en etiquetas GeSHi
>aquí las reglas del foro
-Engel Lex


« Última modificación: 2 Julio 2017, 02:49 am por engel lex » En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: ayuda con mi primera calculadora
« Respuesta #1 en: 2 Julio 2017, 02:40 am »

signo es un carácter y un carácter no se puede comparar con una cadena, en este caso raiz2.

Lo mismo para los case. El valor de los case sólo pueden ser constantes numéricas. Los caracteres como tales también son números, no así las cadenas que son arrays.


En línea

PJ Yeah

Desconectado Desconectado

Mensajes: 10


Ver Perfil
Re: ayuda con mi primera calculadora
« Respuesta #2 en: 5 Julio 2017, 06:24 am »

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <math.h>
  4. int main(){
  5. float numero1,numero2, resultado;
  6. char signo;
  7. printf("^ = potencia \n");
  8. printf("r = raiz cuadrada \n");
  9. printf("* = multiplicacion \n");
  10. printf("/ = division\n");
  11. printf("+ = suma\n");
  12. printf("- = resta\n");
  13. printf("ingrese la operacion que desee realizar:\n");
  14. scanf("%c",&signo);
  15. printf("ingrese el primer numero:\n");
  16. scanf("%f",&numero1);
  17. if (signo!='r' ){
  18. printf("ingrese el segundo numero:\n");
  19.    scanf("%f",&numero2);
  20. }
  21.  
  22. switch(signo){
  23. case 'r':
  24. resultado=sqrt(numero1);
  25.      break;
  26. case '^':
  27. resultado=pow(numero1,numero2);
  28.      break;
  29. case '*':
  30. resultado=numero1*numero2;
  31.      break;
  32. case '/':
  33. resultado=numero1/numero2;
  34.      break;
  35. case '+':
  36. resultado=numero1+numero2;
  37.      break;
  38. case '-':
  39. resultado=numero1-numero2;
  40.      break;
  41. default:
  42. printf("no podemos realizar esa operacion!\n");
  43.      break;
  44.    }
  45.    printf("el resutado es: %.2f  \n",resultado );
  46.    system("pause");
  47.    return 0;
  48. }
en lugar de usar (" ") usa los (' ') cuando quieras hacer los case con una variable char
En línea

angardo

Desconectado Desconectado

Mensajes: 7


Ver Perfil
Re: ayuda con mi primera calculadora
« Respuesta #3 en: 5 Julio 2017, 23:52 pm »

ya me funcionó, gracias!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda con calculadora
Multimedia
fitipal 6 2,603 Último mensaje 10 Junio 2005, 16:35 pm
por fitipal
ayuda con calculadora en vb « 1 2 »
Programación Visual Basic
tisan77 11 3,557 Último mensaje 28 Octubre 2005, 02:05 am
por Leoj90
Ayuda calculadora.
Programación Visual Basic
Goldmoon 7 3,573 Último mensaje 27 Diciembre 2007, 17:36 pm
por Goldmoon
[VBS]Mi primera calculadora
Scripting
darkgx 1 6,271 Último mensaje 4 Diciembre 2009, 21:56 pm
por xassiz_
Mi primera calculadora en PHP
PHP
Thaier 2 1,799 Último mensaje 28 Marzo 2013, 21:14 pm
por cassiani
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines