Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: maxotux en 13 Mayo 2012, 03:17 am



Título: [Ayuda] Calculadora simple en C
Publicado por: maxotux en 13 Mayo 2012, 03:17 am
Hola, les cuento que estoy creando una pequeña calculadora en lenguaje c, y esto sólo con el fin de poder agregarla a un sistema operativo que estoy desarrollado, pero no me compila, no se que tengo mal. Espero y me puedan ayudar.

Creo que el error que tengo se da en el acumulador, y en la condicion. Saludos

Citar
#include <stdio.h>
main()
{
float s,r,o,x,nu,acum;
inicio:
printf("\n\t\t\tCalculadora - Nexter.");
printf("\nNumeros a usar: ");
scanf("%d", %nu);
numeros:
if (nu<acum);
{
printf("\n\nNúmero: ");
scanf("%f", &s);
acum=acum+1
}else{
printf("\nPresiona el numero de la operacion a realizar:\nSuma 1 | Resta 2 | Multiplicacion 3 | Dividicion 4 : ");
scanf("%f", &o);
if (o==1)
{
printf("\nResultado: %f\n", s+r);
printf("\nPresiona 2 para Salir o 5 para volver a Comenzar: ");
scanf("%f", &x);
if (x==5)
{
goto inicio;
}
if (x==2)
{
}
}
else if (o==2)
{
printf("\nResultado: %f\n", s-r);
printf("\nPresiona 2 para Salir o 5 para volver a Comenzar: ");
scanf("%f", &x);
if (x==5)
{
goto inicio;
}
if (x==2)
{
}
}
else if (o==3)
{
printf("\nResultado: %f\n", s*r);
printf("\nPresiona 2 para Salir o 5 para volver a Comenzar: ");
scanf("%f", &x);
if (x==5)
{
goto inicio;
}
if (x==2)
{
}
}
else if (o==4)
{
printf("\nResultado: %f\n", s/r);
printf("\nPresiona 2 para Salir o 5 para volver a Comenzar: ");
scanf("%f", &x);
if (x==5)
{
goto inicio;
}
if (x==2)
{
}
}
else
{
}
}
}
}


Título: Re: [Ayuda] Calculadora simple en C
Publicado por: durasno en 13 Mayo 2012, 03:26 am
Hola! podrias subir el codigo sin usar goto?? no es de buena programacion usarlo.. lo q vi a simple vista es scanf("%d", %nu); debe ser &nu y usa %f si nu es un float

Saludos


Título: Re: [Ayuda] Calculadora simple en C
Publicado por: maxotux en 13 Mayo 2012, 03:29 am
Hola! podrias subir el codigo sin usar goto?? no es de buena programacion usarlo.. lo q vi a simple vista es scanf("%d", %nu); debe ser &nu y usa %f si nu es un float

Saludos
:( y con que remplazo el goto? sobre scanf("%d", %nu); xD tienes razon. Soy nuevo en el mundo de la programacion, con que se puede remplazar el goto? xD


Título: Re: [Ayuda] Calculadora simple en C
Publicado por: maxotux en 13 Mayo 2012, 03:43 am
Olle, creo que se me ocurre una idea, no se puede hacer con un ciclo mientras? creo que si, xD


Título: Re: [Ayuda] Calculadora simple en C
Publicado por: durasno en 13 Mayo 2012, 03:46 am
para lo que queres hacer podrias usar un bucle, en este caso qda mas lindo el do-while :), ej:

Código
  1. do {
  2. // aca va todo el codigo
  3. ........
  4. printf("\nPresiona 2 para Salir o 5 para volver a Comenzar: ");
  5. scanf("%f", &x);
  6. } while(x==5); // si x es 5 se vuelve al principio
De todas formas esto lo vas a aprender con el tiempo

Ahora viendo mejor el codigo creo q tenes problemas aca
Código
  1. printf("\nNumeros a usar: ");
  2. scanf("%d", %nu);
  3. numeros:
  4. if (nu<acum); // este ; no va
  5. {
  6. printf("\n\nNúmero: ");
  7. scanf("%f", &s);
  8. acum=acum+1 // falta ;
  9. }
Te falta un ";" y en el if ese ";" esta mal, ademas solo pedis el ingreso de un numero, solo ingresas un numero en la variable "s" pero a "r" cuando le ingresas un numero. Lo q no entiendo es q qres hacer con nu<acum

Si el tuto/manual de donde estas aprendiendo a programar tiene mas d un ejemplo con goto yo q vos lo cambiaria xq debe ser muy malo :P


Título: Re: [Ayuda] Calculadora simple en C
Publicado por: maxotux en 13 Mayo 2012, 03:53 am
ok, muchas gracias por la ayuda.
pensaba lo mismo de while.
el ";" no me habia fijado xD.
y sobre nu<acum lo que quiero hacer es leer nu, que son los numeros que pedira para sumarlos. cada vez que pide un numero el acum aumenta 1, osea que con esto quiero llegar a mientras nu sea menor a acum que siga pidiendo numeros, si nu es mayor o igual a acum entonces lo que quiero es que pregunte el tipo de operacion a realizar, mostrar el resultado y listo xD.

Pero creo que casi todo el codigo esta mal, xD, muchas gracias de todos modos y no, no estoy usando ningun manual, sólo busco codigos por google para lo que ocupo y veo ejemplos de como funcionan. Saludos!