[Ayuda] Calculadora simple en C

Iniciado por maxotux, 13 Mayo 2012, 03:17 AM

0 Miembros y 1 Visitante están viendo este tema.

maxotux

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
{
}
}
}
}

durasno

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
Ahorrate una pregunta, lee el man

maxotux

Cita de: 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
:( 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

maxotux

Olle, creo que se me ocurre una idea, no se puede hacer con un ciclo mientras? creo que si, xD

durasno

para lo que queres hacer podrias usar un bucle, en este caso qda mas lindo el do-while :), ej:

do {
// aca va todo el codigo
........
printf("\nPresiona 2 para Salir o 5 para volver a Comenzar: ");
scanf("%f", &x);
} 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
printf("\nNumeros a usar: ");
scanf("%d", %nu);
numeros:
if (nu<acum); // este ; no va
{
printf("\n\nNúmero: ");
scanf("%f", &s);
acum=acum+1 // falta ;
}

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
Ahorrate una pregunta, lee el man

maxotux

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!