Estoy empezando a programar en C, con Dev C++. Hasta ahora, los programas simples me van bien, ya saben, programa que sume dos numeros, programas con operaciones basicas, etc.
Hace poco, hice este programa, y me parece que tiene un error de logica, porque por X razon la calculadora que hice, la resta no me anda bien, no me deja anotar el segundo entero y me da de resultado un numero negativo alto.
Les dejo el programa y disculpen mi estupidez de novato.
#include <stdio.h> #include <conio.h>
int main() { int opcion; int a; int b; int resultado; printf("Calculadora\n"); printf("1.Suma\n"); printf("2.Resta\n"); printf("3.Multiplicacion\n"); printf("4.Division\n"); printf("5.Al cuadrado\n"); scanf("%d",&opcion);
switch(opcion)
{ case 1: printf("Suma\n"); printf(" Elija el primer entero\n"); scanf("%d",&a); printf("Elija el segundo entero\n"); scanf("%d",&b); resultado = a+b; printf("Resultado\n%d",resultado); getch(); break;
case 2: resultado = a-b; printf("Resta\n"); printf("Elija el primer entero\n"); scanf("%d",&a); printf("Elija el segundo entero\n"); scanf("&d",&b); printf("Resultado\n%d",resultado); getch(); break;
case 3: printf("Multiplicacion\n"); printf("Elija el primer entero\n"); scanf("%d",&a); printf("Elija el segundo entero\n"); scanf("%d",&b); resultado = a*b; printf("Resultado\n%d",resultado); getch(); break;
case 4: printf("Division\n"); printf("Elija el primer entero\n"); scanf("%d",&a); printf("Elija el segundo entero\n"); scanf("%d",&b); resultado = a/b; printf("Resultado\n%d",resultado); getch(); break;
case 5: printf("Al cuadrado\n"); printf("Elija el numero a potenciar\n"); scanf("%d",&a); resultado = a*a; printf("Resultado\n",resultado); getch(); break; } } Muchas gracias.
En línea
You, stop to close my post, you were novice too!!!!!!!!!!!!
Así es amigo no te anda la resta porque la operación la ases antes. No puedes hacer una resta sin tener parámetros primero pides los valores a y b (como lo muestra satu en la respuesta)y luego ases la operación así como lo hiciste con las demás operaciones de la suma
Así es amigo no te anda la resta porque la operación la ases antes. No puedes hacer una resta sin tener parámetros primero pides los valores a y b (como lo muestra satu en la respuesta)y luego ases la operación así como lo hiciste con las demás operaciones de la suma
¿Ases? ¡Ases de las alturas!
Perdona, es que me recordaste la canción
Saludos
« Última modificación: 19 Enero 2012, 16:56 pm por Xandrete »
Os agradezco muchisimo amigos, estoy aprendiendo recien C, y soy bastante retardado.
Tengo un problema, diferente. Con Dev C++, mi compilador, quiero compilarlo, ahora que acomode eso, y trabaja como si fuera la version anterior de mi programita. Es decir, me sigue trabajando mal la resta.
Como hago para actualizarlo, y para que el tarado compilador se de cuenta de que el codigo fuente es diferente al anterior??
EI: juntando mensajes.
Quiero añadir mas y mas cosas a este programa. Estuve carcomiendome el cerebro por horas, pero, como harian para que pueda hacer potencias con cualquier exponente?
« Última modificación: 19 Enero 2012, 23:08 pm por Eternal Idol »
En línea
You, stop to close my post, you were novice too!!!!!!!!!!!!
Os agradezco muchisimo amigos, estoy aprendiendo recien C, y soy bastante retardado.
Tengo un problema, diferente. Con Dev C++, mi compilador, quiero compilarlo, ahora que acomode eso, y trabaja como si fuera la version anterior de mi programita. Es decir, me sigue trabajando mal la resta.
Como hago para actualizarlo, y para que el tarado compilador se de cuenta de que el codigo fuente es diferente al anterior??
Antes que nada, quería aclarar que Dev-C++ no es un compilador, es un IDE. El compilador que usa es el de MinGW, que es un port para Windows del gcc.
¿Has comprobado si al guardar has renombrado el código? Si no es esto, borra todos los ejecutables y todos los ficheros objetos de la carpeta donde esté el código y vuelve a probar. Y asegúrate de que resultado=a-b esté efectivamente después del último scanf.
Quiero añadir mas y mas cosas a este programa. Estuve carcomiendome el cerebro por horas, pero, como harian para que pueda hacer potencias con cualquier exponente?
Depende. Con cualquier exponente, ¿te refieres a que el exponente puede ser real (por ejemplo, 23.16753)? ¿Exponente entero (1,-2,5,0,-10)? ¿O exponente estrictamente natural (1,2,3,4,5,6)? Puedes implementar una función tu mismo que calcule la potencia (hay diferencias dependiendo de cual de los tres casos anteriores consideres), a modo de ejercicio, o puedes usar las funciones de la librería math.h (me parece que la función para las potencias se llamaba pow, mírate la documentación para estar seguro).
Saludos.
« Última modificación: 19 Enero 2012, 20:55 pm por Xandrete »
Pero for sale de programacion estructurada. No se podria hacer con programacion estructurada (do while, if then else,etc)?
¿?
¿Cómo que sale de programación estructurada? Un for no es más que una manera de abreviar un while. Si no te gusta el for, hazlo con un while.
Código
for(i =0; i < algo;++i){
/* codigo */
}
es totalmente lo mismo que
Código
i =0;
while(i < algo){
/* codigo */
++i;
}
Pero vamos, no entiendo por qué dices que sale de programación estructurada. Es más, es recomendable usar bucles for en recorridos (como en este caso). Lo que sí que se aleja del concepto de programación estructurada son los goto, los exit y los return antes del final de una función. Aquí lo explican.