Autor
|
Tema: Ayuda con un programa. (Leído 2,389 veces)
|
sami98035
Desconectado
Mensajes: 3
|
Buena, soy un estudiante de informática que apenas va por el primer semestre, estuve haciendo un programa que calcula el radio de un circulo mediante el área, perímetro o diámetro, y también que calcule la media aritmética de n números. El problema está en que hice un menú, pero no hace lo que se le pide, cuando quiero ir a la opción 2 que es parta calcular la media aritmética, no salta hasta ahí, sino que ejecuta la opción 1 y debes ingresar datos para que llegue hasta la opción 2. También, en la opción 1, cuando trato de sacar el radio por el perímetro, ahí si salta a la opción 2. #include <stdio.h> #include <math.h> #define PI 3,1415 #define RAIZPI 1,772453 main () { float area, diametro, perimetro, radio; int operacion, operacionRadio, volverInicio; int seguir; int numero, contador, acumulador; float resultado; int raiz; int raiz2; contador = 0; acumulador = 0; do { printf ("Si decea calcular el radio de un circulo, pulse el numero 1. \n"); printf ("Si decea sacar la media aritmetica de un numero, pulse el numero 2. \n"); scanf ("%d", &operacion); if (operacion = 1){ printf ("Si tiene el area, pulse 1: \n"); printf ("Si tiene el diametro, pulse 2: \n"); printf ("Si tiene el perimetro, pulse 3: \n"); fflush (stdin); scanf ("%d", &operacionRadio); if (operacionRadio == 1) { printf ("Introduzca el area: \n"); fflush (stdin); scanf ("%f", &area); raiz = sqrt(area); radio = raiz / RAIZPI; printf ("El radio es: %f \n", radio); } else if (operacion == 2) { printf ("Introduzca el diametro: \n"); fflush (stdin); scanf ("%f", &diametro); radio = diametro / PI; printf ("El radio es: %f \n", radio); } } else if (operacionRadio == 3) { printf ("Introduzca el perimetro: \n"); fflush (stdin); scanf ("%f", &perimetro); radio = perimetro / (2*PI); printf ("El radio es: %f \n \n", radio); } else (operacion = 2); { do { printf ("Introduzca un numero entero \n"); fflush (stdin); scanf ("%d", &numero); contador = contador + 1; acumulador = acumulador + numero; printf ("Introdujo %d numero(s) \n", contador); printf ("La suma es: %d \n", acumulador); printf ("Decea introducir otro numero? pulse 1 para SI; 0 para no. %d \n"); fflush (stdin); scanf ("%d", &seguir); }while (seguir == 1); resultado = acumulador / contador; printf ("La media aritmetica es: %f \n", resultado); } printf ("Si decea volver a inico, pulse 1, de lo contrario, pulse 0. %d \n"); fflush (stdin); scanf ("%d", &volverInicio); } while (volverInicio == 1);
}
Por favor, si pueden ayudarme a saber qué estoy haciendo mal, se los agradecería mucho.
|
|
|
En línea
|
|
|
|
casmajavi
Desconectado
Mensajes: 2
|
Hola. El problema que tienes es que estás confundiendo el operador = con el operador ==. El primero es el operador de asignación, el segundo es relacional.
Saludos.
|
|
|
En línea
|
|
|
|
sami98035
Desconectado
Mensajes: 3
|
Hola. El problema que tienes es que estás confundiendo el operador = con el operador ==. El primero es el operador de asignación, el segundo es relacional.
Saludos.
Acabo de probar, y me sigue haciendo lo mismo, sigue saltando a donde no es.
|
|
|
En línea
|
|
|
|
dariodr01
Desconectado
Mensajes: 27
|
Pruebalo asi. Saludos. #include <stdio.h> #include <math.h> #define PI 3,1415 #define RAIZPI 1,772453 int main () { float area, diametro, perimetro, radio; int operacion, operacionRadio, volverInicio; int seguir; int numero, contador, acumulador; float resultado; int raiz; int raiz2; contador = 0; acumulador = 0; do { printf ("Si decea calcular el radio de un circulo, pulse el numero 1. \n"); printf ("Si decea sacar la media aritmetica de un numero, pulse el numero 2. \n"); scanf ("%d", &operacion); if (operacion == 1) { printf ("Si tiene el area, pulse 1: \n"); printf ("Si tiene el diametro, pulse 2: \n"); printf ("Si tiene el perimetro, pulse 3: \n"); //fflush (stdin); scanf ("%d", &operacionRadio); if (operacionRadio == 1) { printf ("Introduzca el area: \n"); //fflush (stdin); scanf ("%f", &area); raiz = sqrt(area); radio = raiz / RAIZPI; printf ("El radio es: %f \n", radio); } else if (operacion == 2) { printf ("Introduzca el diametro: \n"); //fflush (stdin); scanf ("%f", &diametro); radio = diametro / PI; printf ("El radio es: %f \n", radio); } else if (operacionRadio == 3) { printf ("Introduzca el perimetro: \n"); //fflush (stdin); scanf ("%f", &perimetro); radio = perimetro / (2*PI); printf ("El radio es: %f \n \n", radio); } } else { do { printf ("Introduzca un numero entero \n"); //fflush (stdin); scanf ("%d", &numero); contador = contador + 1; acumulador = acumulador + numero; printf ("Introdujo %d numero(s) \n", contador); printf ("La suma es: %d \n", acumulador); printf ("Decea introducir otro numero? pulse 1 para SI; 0 para no.\n"); //fflush (stdin); scanf ("%d", &seguir); } while (seguir == 1); resultado = acumulador / contador; printf ("La media aritmetica es: %f \n", resultado); } printf ("Si decea volver a inico, pulse 1, de lo contrario, pulse 0.\n"); //fflush (stdin); scanf ("%d", &volverInicio); } while (volverInicio == 1); return 0; }
|
|
|
En línea
|
|
|
|
sami98035
Desconectado
Mensajes: 3
|
Pruebalo asi. Saludos. #include <stdio.h> #include <math.h> #define PI 3,1415 #define RAIZPI 1,772453 int main () { float area, diametro, perimetro, radio; int operacion, operacionRadio, volverInicio; int seguir; int numero, contador, acumulador; float resultado; int raiz; int raiz2; contador = 0; acumulador = 0; do { printf ("Si decea calcular el radio de un circulo, pulse el numero 1. \n"); printf ("Si decea sacar la media aritmetica de un numero, pulse el numero 2. \n"); scanf ("%d", &operacion); if (operacion == 1) { printf ("Si tiene el area, pulse 1: \n"); printf ("Si tiene el diametro, pulse 2: \n"); printf ("Si tiene el perimetro, pulse 3: \n"); //fflush (stdin); scanf ("%d", &operacionRadio); if (operacionRadio == 1) { printf ("Introduzca el area: \n"); //fflush (stdin); scanf ("%f", &area); raiz = sqrt(area); radio = raiz / RAIZPI; printf ("El radio es: %f \n", radio); } else if (operacion == 2) { printf ("Introduzca el diametro: \n"); //fflush (stdin); scanf ("%f", &diametro); radio = diametro / PI; printf ("El radio es: %f \n", radio); } else if (operacionRadio == 3) { printf ("Introduzca el perimetro: \n"); //fflush (stdin); scanf ("%f", &perimetro); radio = perimetro / (2*PI); printf ("El radio es: %f \n \n", radio); } } else { do { printf ("Introduzca un numero entero \n"); //fflush (stdin); scanf ("%d", &numero); contador = contador + 1; acumulador = acumulador + numero; printf ("Introdujo %d numero(s) \n", contador); printf ("La suma es: %d \n", acumulador); printf ("Decea introducir otro numero? pulse 1 para SI; 0 para no.\n"); //fflush (stdin); scanf ("%d", &seguir); } while (seguir == 1); resultado = acumulador / contador; printf ("La media aritmetica es: %f \n", resultado); } printf ("Si decea volver a inico, pulse 1, de lo contrario, pulse 0.\n"); //fflush (stdin); scanf ("%d", &volverInicio); } while (volverInicio == 1); return 0; }
Hola, gracias por la ayuda, bro. Sí me funciona así.
|
|
|
En línea
|
|
|
|
MAFUS
Desconectado
Mensajes: 1.603
|
Apuesto a que no te va a funcionar por diámetro.
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
AYUDA CON PROGRAMA
Diseño Gráfico
|
Luisango
|
1
|
2,469
|
17 Abril 2005, 13:25 pm
por Sub_Cero
|
|
|
ayuda con mi programa
Programación Visual Basic
|
nitrox
|
2
|
2,372
|
31 Julio 2005, 00:48 am
por Slasher-K
|
|
|
[Ayuda] ¿Cómo ejecutar otro programa desde mi programa de C#?
.NET (C#, VB.NET, ASP)
|
Zodiak98
|
1
|
6,197
|
8 Diciembre 2013, 01:51 am
por Eleкtro
|
|
|
[AYUDA] Ayuda con NETCAT o cualquier otro programa similar
Dudas Generales
|
Noxware
|
0
|
2,189
|
16 Junio 2014, 18:13 pm
por Noxware
|
|
|
AYUDA! ---- Programa en lenguaje C en programa Dev-C ++ ---- AYUDA!
Programación C/C++
|
EduardoSaenz
|
4
|
3,889
|
7 Mayo 2016, 23:38 pm
por MAFUS
|
|