Informática, pregunta formulada por Elmo286, hace 2 meses

Elaborar un programa que pida 4 numeros por teclado y muestre cual es el segundo mayor

Ej: Si A=-1 B=-2 C=-3 D=-45 entonces mostrara "El segundo mayor es -2"

Ej: Si A=1 B=2 C=3 D=3 entonces mostrara "El segundo mayor es 2"

Ej: Si A=10 B=1-0 C=10 D=10 entonces mostrara "No existe segundo mayor"

(SOLO puede existir ALGUNA de las siguientes palabras en el codigo de la solucion DOS VECES IF, WHILE , REPEAT)

ayudaaaa!!!!!!!!... yo me lo sabia a puros if :"(


Elmo286: pascal plis
NivekT: Esperame
Elmo286: ok
NivekT: Listo
NivekT: xd3
Elmo286: xd
NivekT: Es complicado :")
NivekT: Pero apliqué lo de borrar al primer mayor
NivekT: porq lo optimo sería ordenarlo de menor a mayor y asi sería mucho mas facil obtener ese segundo mayor
NivekT: Pero no se si podias usar un algoritmo de ordenamiento

Respuestas a la pregunta

Contestado por NivekT
1

Respuesta:

program SegundoMayor_De4Numeros;

var

   Numeros: ARRAY[1..4] OF integer;

   Copia_Numeros: ARRAY[1..4] OF integer;

   i: integer;

   Mayor: integer;

   Mayor2: integer;

begin

   {Pedimos los numeros y los guardamos en el arreglo}

   i := 1;

   while i <= 4 do

   begin

       write( 'Ingrese el numero ', i, ': ' );

       readln( Numeros[i] );

       i := i + 1;

   end;

   

   

   {Ahora buscamos el mayor}

   Mayor := Numeros[1];

   i := 2;

   while i <= 4 do

   begin

       if Numeros[i] > Mayor then

       begin

           Mayor:=Numeros[i];

       end;

       i := i + 1;

   end;

   {Hacemos una copia del arreglo quitando al mayor}

   i := 1;

   while i <= 4 do

   begin

       Copia_Numeros[i] := Numeros[i];

       if Copia_Numeros[i] = Mayor then

       begin

           Copia_Numeros[i] := -999;

       end;

       i := i + 1;

   end;

   

   Mayor2 := Copia_Numeros[1];

   i := 2;

   while i <= 4 do

   begin

       if Copia_Numeros[i] > Mayor2 then

       begin

           Mayor2 := Copia_Numeros[i];

       end;

       i := i + 1;

   end;

   writeln('El numero mayor es: ', Mayor);

   writeln('El segundo numero mayor es: ', Mayor2);

end.

Explicación:

Perdón la demora, no funcionaba para numeros negativos mmm pero creo que ya.


Elmo286: thanks
Otras preguntas