El problema que tengo es que cuando le doy a copilar con el Dev-C++ antes de poner el resultado en la pantalla se cierra el programa, soy muy novato en esto acabo de empezar, me gustaría que me arreglaran el código.
#include <stdio.h> main() { int resultados; int resultador; int resultadom; int resultadod; int elegir; int primero; int segundo; resultados= primero + segundo; resultador= primero - segundo; resultadom= primero * segundo; resultadod= primero / segundo; printf("Escribe un numero para elegir la operacion\n"); printf("1.Suma\n"); printf("2.Resta\n"); printf("3.Multiplicacion\n"); printf("4.Division\n"); scanf("%d", &elegir); getcha(); printf("Escribe el primer numero "); scanf("%d", &primero); getchar(); printf("Escribe el segundo "); scanf("%d", segundo); getchar(); if (elegir == 1) printf("El resultado es %d", resultados); if (elegir == 2) printf("El resultado es %d", resultador); if (elegir == 3) printf("El resultado es %d", resultadom); if (elegir == 4) printf("El resultado es %d", resultadod); getchar(); }
Para empezar, en el scanf te
Para empezar, en el scanf te falta un & en cada segundo argumento, siempre lo debe de llevar. Sobre lo del switch es de C. Todo lo que han dicho aquí es de C.
Es C
No se si os habeis dado cuenta que no es C++ es C, gracias por todo.
¿Me podeis poner el código ya arreglado?
No se que has visto tú
Pero yo he revisado todos los comentarios y no he visto ni una línea de C++... getchar es una función de C, y lo de int main y switch también es de C...
Dennis Ritchie. Padre de C y cocreador de UNIX.
R.I.P.
Esta diciendo que es
C no C++, te has confundido :P
Y eso es lo que he dicho
Que todo el código que han puesto es C, no C++...
Errores
Aparte de los que te han dicho (getchar, int main, etc), he visto que le falta un & al scanf de "segundo". Además, los cálculos (resultados= primero + segundo; etc) deberían hacerse después de leer los datos.
Gran parte de los errores que te hemos mencionado te los estará diciendo el compilador. Lee los mensajes de error con detenimiento e intenta "descifrarlos". Sino, te pasarás la vida preguntando por los foros.
Saludos!
Dennis Ritchie. Padre de C y cocreador de UNIX.
R.I.P.
No sé si miré el código con
No sé si miré el código con suficiente concentración. Pero a mi me parece que resultado* es null en todos los casos, no? (Dejando de lado la ineficiencia del código, que dado que acabas de empezar con la programación, se puede obviar).
Para recibir ayuda por parte de otros usuarios más rápidamente, recomendamos que pongas títulos descriptivos y no utilices abreviaturas (estilo MSN) en tus post de los foros. Recuerda que accediendo al Manual del perfecto forero y las Normas de la Comunidad aprenderas trucos para resolver tus dudas antes.
No preguntes por MP, mejor pregunta aquí.
Prueba esto abajo de todo en
Prueba esto abajo de todo en vez de un getchar pon dos a mi me pasaba algo parecido y me funciono
A parte
De que es int main (o void main, como dicen por aquí abajo), que yo sepa, no existe la funcion getcha(), existirá la función getchar(), revisa, que lo has escrito mal.
Yo empezaria antes por C
Primero la funcion es int main(void)
Segundo porque no lo haces con un case?
ejemplo:
case 1:
printf("Introduce sumando A: ");
scanf("%i", &primero);
printf("Introduce sumando B: ");
scanf("%i", &segundo);
suma = primero + segundo;
printf("El resultado es: %i", suma);
case 2:
....
las variables enteras las puedes poner separadas con una coma
int suma, resta, multiplicacion, division;
normal...
no es main() es int main()
Buenas
Te invito a compilar este simple hello world en codeblocks :P
0 errores y 0 warnings. No se si se puede considerar un error, que los más veteranos en este campo nos lo aclaren xD.
Un saludo ;-).
¡Visca el Barça y Viva España!
Depende del compilador.
(Y digo del compilador, no del IDE). g++ y gcc por lo visto están preparados para eso, aunque en el lenguaje está establecido que el valor de retorno DEBE ser int. Copio y pego de http://www.zator.com/Cpp/E4_4_4.htm
Algunos compiladores pueden generar un aviso de error si se intenta compilar un programa cuya función main no devuelva un int. Por contra, algunas plataformas pueden provocar fallos cuando estos programas arrancan o a su terminación, ya que esperan un int de retorno.
Vamos, que una cosa es lo que se especifique en el lenguaje y otra lo que decida hacer cada compilador. Probablemente, en compiladores más antiguos hubiese petado (sobre todo para MS-DOS etc, que sí usaba el valor de retorno).
En fin, que aunque se lo funcione de ambas formas, lo mejor siempre es poner
int main ()
oint main (int argc, char *argv [])
, que no cuesta nada :)Dennis Ritchie. Padre de C y cocreador de UNIX.
R.I.P.
Buenas
Muchas gracias por la aclaración, no sabía si era cosa del IDE o del compilador. Un saludo ;-).