Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Pantuflo

#1
Gracias por las respuestas!!

Para los que no han comprendido, en el problema tengo que encontrar el mayor valor de 68 números y el SEGUNDO mayor valor. O sea, los dós más grandes y el orden en el cual esos números fueron ingresados por teclado.

Gracias Ari-Slash por el código. Lo testié pero me sigue pasando lo que me pasaba con todos los codigos que modifiqué hasta ahora (sin suerte de que funcionara).
Por ejemplo, ingresé los números:
1
2
3
5
4
10
en ese orden y el mayor valor me lo toma como 10 pero el segundo mayor me lo toma como 4 y no 5. Este problema surge al ingresar un valor mayor después de uno que ha sido mayor. No sé cómo arreglar eso.
#2
Programación C/C++ / Ayuda con problema en C
11 Mayo 2010, 04:28 AM
Hola, tengo una duda con un problema (con varios pero este es uno de ellos).
Es muy sencillo pero no me sale.

Tengo que hallar los 2 valores mayores y el orden de un grupo de 68 valores (en el foro encontré uno a medio resolver pero tampoco pude hacerlo funcionar).

Hasta acá hice yo:


#include <stdio.h>
#include <conio.h>

void main()
{
int v,v1,max1,max2,orden1,orden2,i;


      for(i=1;i<=68;i++)
      {
                           printf("\nIngrese valores mayores a 0:");
                           scanf("%d",&v);
                           printf("\nIngrese valores mayores a 0:");
                           scanf("%d",&v1);


                           if(v>0)
                           {
                            if(i==1||v>max1&&v>max2)
                              {
                                        max1=v;
                                  orden1=i;
                                    }
                                  if(i==1||v1>max2&&v1<max1)
                                    {
                                                      max2=v1;
                                                      orden2=i;
                                       }
                                }
                           }
printf("\nEl mayor valor es:%d de orden %d y el segundo mayor valor es:%d de orden:%d",max1,orden1,max2,orden2);
getch();



}


Vale aclarar que solo puedo usar for/while/if y funciones simples. Nada de arrays, por ejemplo. Tengo que usar Borland C++ pero el código tiene que ser en C.

Mi duda es (aparte de la codificación), cómo hago para que cuando ingreso un número que es mayor a los 2 que ya están, el max1 pase al max2 y el que ingreso quede en max1. No sé.
Si alguien puede decirme al menos dónde puedo buscar algo que me ayude, sería últil.