[ Foro de C++ ]

bucles for e if resultado errado

04-Dec-2019 13:09
Invitado (Biru)
5 Respuestas

Por que el  siguiente codigo me tira mal el resultado?
No me aparecen errorres de compilacion...


#include <iostream>
using namespace std;

int main() {

int v[10], b[10], i, smallv, smallb, bigv, bigb;

    
for (i=0; i<10; i++) {
    
    
    cin >> v[i];
    cin >> b[i];
 
    
   cout << "v" <<v[i] << endl;
   cout << "b" <<b[i] << endl;
   
  } 
   
   smallv = v[0];
    bigv = v[0];
    smallb = b[0];
    bigb = b [0];
    
  for(i=0; i<10; i++) {

 if (smallv > v[i]) {
     
     smallv = v[i];
 }
 
 
if (smallb > b[i]) {
    
    smallb = b[i];
}

if (bigv < v[i]) {
    
    bigv = v[i];
}

if (bigb < v[i]) {
    
    bigb = b[i];
}

}

cout << "los menores numeros son: " << smallv  << " y " << smallb << endl;

cout << "los mayores numeros son: " << bigv << " y " << bigb << endl;


if (smallv < smallb) {
    
    cout << "el menor numero es " << smallv << endl; 
}
else {
    cout << "el menor es " << smallb << endl;
}

if (bigb < bigv) {
    
    cout << "el mayor numero es " << bigv << endl; }

else {
    cout << "el mayor es " << bigb << endl;
}    

    
return 0;  
}


 


04-Dec-2019 13:33
Nacho Cabanes (+84)

Qué datos de prueba pones y qué resultado te da con ellos?


04-Dec-2019 13:51
Invitado (Biru)

Pongo numeros aleatorios.
Pero el mayor no aparece como tal.
Infelizmente desde el celular no puedo pegar el resultado aca.


04-Dec-2019 13:59
Invitado (Biru)

Puse numeros aleatorios.
En particular note que sale mal el mayor del segundo vector por ejemplo.
Infelizmente no puedo poner una foto aca.
Pero ingrese, por ejemplo, 4230 y 52780 en el vector "b" y muestra como resultado siendo mayor el primero.


04-Dec-2019 14:25
Nacho Cabanes (+84)

A ojo, yo diría que sólo falla en un caso: el máximo del array b, porque esta condición es incorrecta:


if (bigb < v[i]) {
   
   bigb = b[i];
}


 


04-Dec-2019 15:09
Invitado (Biru)

Que torpeza la mía. Muchisimas gracias.






(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.)