[ Foro de C++ ]
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
¡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!