Mmm... detalles:
1. No uses flush (). Lee las chinchetas
2. Declara main () como "int main (int argc, char *argv)". Es lo más correcto.
3. No uses tanto "scanf ()". Busca algo de fgetc (), getchar (), etc...
Luego, eso es porque ocurre un integer overflow. Puedes intentar solucionarlo usando la palabra clave "long" a la hora de declarar x, y y resultado. Y lo otro... mira la tabla ascii. Prueba con:
1. fflush() ya lo he quitado, como lo vi en el libro pensaba que era lo correcto. Gracias por el aviso.
2. ¿Si declaro int main (void) puede provocar algun error?
3. Gracias por el consejo, ¿pero si uso siempre la misma función puede pasar algo?
4. Muchisimas gracisa, aqui has resuelto mi problema con la suma de los dos numeros =D y tambien lo de los accentos
Para escribir el caracter "¿" haces:
http://es.wikipedia.org/wiki/P%C3%A1gina_de_c%C3%B3digos_850El problema al sumar los numeros es que 100000000000000000 es igual a 0x5D8A0000, que es un numero de 64 bits, por lo que en un PC de 32 bits no podras sumar.
Si quieres cerrar la ventana podrias probar con retornar EXIT_SUCCESS.
int main()
{
/* ... */
return EXIT_SUCCES;
}
Con eso se cierra la aplicacion. Tambien puedes retornar 0.
PS: Yo tambien tengo 16 años xd
Saludos
Gracias por lo de los carácteres me ha ayudado muchsíssimo =D Por cierto mi PC es de 64 bits, creo que el problema fue por no poner el long double, diria. Y al final para cerrar la ventana he pusto return 0;
...
break;
}
/*Pedir al usuario si quiere realizar otra operacion matematica o cerrar la ventana*/
printf("\nQuieres realizar otra operacion (S/N): ");
}
while((cerrar_ventana
=getch())==115);
el getch() capta solo un carácter, por ende no tiene sentido incluir la mayúscula pero ta
, para hacer que trabaje solo con s y n has
while((cerrar_ventana
=getch())==115 || cerrar_ventana
!=110);
(Aunque tampoco tenga sentido lo ultimo e.e)
Es por si el usuario pone "S" que no se le cierre la ventana, ya que c++ es case sensitive, aunque gracias por la ayuda =D
Se me olvidó contestar a eso jajaja
exit (0); / return 0;
En caso de que estés dentro de otra función que no es main (), usa exit, ya que return vuelve a la función anterior.
Por cierto, &c es incorrecto. es %c
PS: Que mayores jejeje
Gracias, me has ayudado mucho, ya se cierra la ventana =D Y en el código estaba escrito con %c
Es por lo ultimo.
Lo primero que debes hacer es evitar el uso de extensiones como la biblioteca conio de Borland, mas todavía cuando en tu programa su uso no es necesario.
Con "el ultimo trozo del codigo no funciona" supongo te refieres a que el bucle (y por ende la aplicación) no finaliza aun cuando teclees un carácter distinto de 'S' y 's'. Ello se debe a que al utilizar el especificador "%c" este no ignora el espacio blanco y por ello (caso usual) se "traga" el avance de linea introducido después del segundo operando.
Para solucionarlo solo tienes que agregar un espacio antes del especificador "%c", de esta forma:
printf("\nQuieres realizar otra operacion (S/N): "); scanf(" %c", &cerrar_ventana
);
También se puede reducir de forma significativa el programa ya que todas las operaciones son comunes (petición de los operandos, solo varia la operación).
Un saludo
Gracias por la sugerenci, todavia no tengo dominado todas las bibliotecas =P Y tuviste razon tenia que poner un espacio, muchissimas gracias por cierto Esto del c++ tampoco es tan fácil...
Sobre lo de reducir el código lo pense, pero ya que no tengo interfaz gráfica pense en dar un poco más de belleza al castellano =P
GRACIAS A TODOS