[ Foro de C++ ]

bool

09-Mar-2023 03:29
Invitado (Hunter)
2 Respuestas

Hola q tal soy algo nuevo en esto de la programacion y se me presento una duda con un ejercicio:
Miren me dan 10 numeros:
9
-5
-6
6
-8
8
8
2
3
-3
Aqui tengo q contar los cambios de signos que hay que serian 4 y ahi es donde se me presenta el problema xq quiero utilizar las variables booleanas para hacerlo pero no se bien como hacerlo


10-Mar-2023 00:46
Invitado (moises)

hola hunter

ahí la pregunta es si es menor que cero, la respuesta siempre es booleana, si o no, si quieres guardar la respuesta en un bool guardala pero no tiene sentido

si la pregunta la pones en un if, incrementas el contador de negativos si es
negativo y al final del ciclo presentas las cuentas

saludos ;-)


14-Mar-2023 21:47
Invitado (Alejandro Andrade)

¡Hola! En C++ se pueden utilizar variables booleanas para resolver este problema. Una posible solución es la siguiente:

#include <iostream>
using namespace std;

int main() {
   int numeros[10] = {9, -5, -6, 6, -8, 8, 8, 2, 3, -3};
   int cambios_de_signo = 0;
   bool es_positivo = numeros[0] > 0;

   for (int i = 1; i < 10; i++) {
       bool es_positivo_actual = numeros[i] > 0;
       if (es_positivo_actual != es_positivo) {
           cambios_de_signo++;
           es_positivo = es_positivo_actual;
       }
   }

   cout << "Hay " << cambios_de_signo << " cambios de signo en los 10 numeros." << endl;

   return 0;
}

Explicación del código:

1. Se declara un arreglo 'numeros' con los 10 números proporcionados en el enunciado del problema.
2. Se declara una variable 'cambios_de_signo' que se inicializa en 0 y que se usará para contar los cambios de signo en el arreglo.
3. Se declara una variable booleana 'es_positivo' que se inicializa con el signo del primer número del arreglo. Si el primer número es positivo, 'es_positivo' se inicializa en true, de lo contrario, se inicializa en false.
4. Se utiliza un bucle 'for' para recorrer el resto del arreglo a partir del segundo número.
5. Para cada número 'numeros[i]', se calcula si es positivo o negativo y se almacena en la variable booleana 'es_positivo_actual'.
6. Se compara 'es_positivo_actual' con 'es_positivo' (que contiene el signo del número anterior en el arreglo) y si son diferentes, se incrementa 'cambios_de_signo' y se actualiza el valor de 'es_positivo' con 'es_positivo_actual'.
7. Al final del bucle, 'cambios_de_signo' contiene el número de cambios de signo en el arreglo.
8. Se imprime el resultado por pantalla.

Espero que esto te ayude a entender cómo utilizar variables booleanas para contar los cambios de signo en un arreglo de números. ¡Saludos!






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)