[ Foro de C++ ]

No encuentro mi error

10-Jan-2020 17:15
Invitado (ddxmcx )
1 Respuestas

Hola! Estaba intentando hacer un envío de el problema 538 de la pagina ACEPTA EL RETO: https://www.aceptaelreto.com/problem/statement.php?id=538. Tengo un programa hecho en c++:
#include <iostream>

using namespace std;

int main()
{
   int a1,a2;int c=1;
   int o[c];
   do{
   cin>>a1>>a2;
   if(a1<a2){
           o[c]=1;
   }
   else if(a1>=a2){
           o[c]=2;
   }
     if(a1==0 && a2==0){
       o[c]=0;
     }
c++;

   }while(a1 || a2);

   for(int x=0;x<c;x++){
   if(o[x]==1){cout<<"SENIL"<<endl;}
   else if(o[x]==2){cout<<"CUERDO"<<endl;}}
   return 0;
}
Tal vez alguien sabe, que error he cometido?


11-Jan-2020 16:47
Nacho Cabanes (+62)

El primer error, y más grave, es que no necesitas ningún array. No debes usar un array, especialmente si no sabes la cantidad de datos que te van a introducir. En tu caso es más grave aún, porque no sobredimensionas, tu array tiene tamaño 1, así que lo desbordas con la segunda lectura de datos.

Debes leer dos datos, comparar y responder. Luego otros dos, y así sucesivamente, sin almacenar nada más que esos dos datos.






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