Hoy estuve practicando si puedo poner de manera verbal las elecciones de si y no, pero ocurre un problema.
No sé si esta mal mi lógica, pero el el primer while
pese a que escribo s o n, este siempre vuelve a intentarlo, y no sé porque ocurre eso. También cuando escribo muchas letras para dar valor a elección por ejemplo: jhkiu. Este imprime cinco veces "vuelva a intentarlo" ¿Por qué?
#include <iostream>
#include <cmath>
#include <string.h>
using namespace std;
const float pi = 3.1416;
float raiz(int n)
{
return sqrt(n);
}
float potencia(float n)
{
return n*n;
}
int main()
{
float m, n, a, b;
char eleccion;
cout << "Raiz de: ";
cin >> a;
m = raiz(a);
cout << "es " << m << endl;
n = potencia(raiz(a));
cout << "el cuadrado del numero escrito es " << n << endl;
b = potencia(pi);
cout << "el cuadrado de pi es " << b << endl;
cout << "¿Desea continuar pero con diferentes numeros? s/n: ";
cin >> eleccion;
while (eleccion != 's' || eleccion != 'n')
{
cout << "Vuelva a elegir: ";
cin >> eleccion;
}
while (eleccion == 's')
{
cout << "Raiz de: ";
cin >> a;
m = raiz(a);
cout << "es " << m << endl;
n = potencia(raiz(a));
cout << "el cuadrado del numero escrito es " << n << endl;
cout << "¿Desea continuar pero con diferentes numeros? s/n: ";
cin >> eleccion;
}
if (eleccion == 'n') cout << "Gracias por utilizar el programa!!!" << endl;
}
Sería gratificante que me brinden sus consejos. Si esto es una mala práctica para programar hacérmelo llegar. Gracias.