• Domingo 28 de Abril de 2024, 22:19

Autor Tema:  Programa C devuelva mayor y menor numero  (Leído 11975 veces)

zenix

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Programa C devuelva mayor y menor numero
« en: Viernes 25 de Noviembre de 2011, 23:04 »
0
Buenas!

Os comento, tengo que hacer un ejercicio con el mínimo de comparaciones posibles y he visto a un compañero que define varias variables:

a,b,c,mayor,menor.

Luego habría que comparar cada uno hasta encontrar el mayor pero no sé cómo hacerlo ahora mis dos preguntas:

1º ¿Es normal que no sepa hacerlo?¿Significa que puedo retirarme de la programación o esto es poco a poco?
2º ¿Alguien me puede ayudar a decirme cómo comparo los tres números?


Gracias!

SevenX3

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Re:Programa C devuelva mayor y menor numero
« Respuesta #1 en: Sábado 26 de Noviembre de 2011, 00:17 »
0
Este codigo lo hice hace unos meses, yo estoy aprendiendo C++.

La diferencia es que yo uso un array con 10 numeros.



Código: [Seleccionar]



int m, i;

int mayor(long array[]){
int m=0;
for(;i<10;){
if(array[i]>m){
m=array[i];

}
i=i+1;
}
i=0;
cout<<"Mayor:"<<m<<endl;
return m;


}

int menor(int n){
for(;i<10;){
if(array[i]<n){
n=array[i];
}
i=i+1;
}
cout<<"Menor:"<<n<<endl;
return n;
}

juanmautn

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re:Programa C devuelva mayor y menor numero
« Respuesta #2 en: Domingo 1 de Abril de 2012, 15:25 »
0
Tal vez llegue algo tarde  :losiento: , pero bueno, una de las formas de resolverlo (la mas deficiente es esta):

Citar
#include <stdio.h>

void main(){
int a, b, c;
printf("Ingrese 3 numeros ENTEROS diferentes: \n\n");
printf("Valor 1: ");
scanf("%d", &a);
printf("Valor 2: ");
scanf("%d", &b);
printf("Valor 3: ");
scanf("%d", &c);

    if(a<b){
        if(a>c){
            printf("%d %d %d\n",b ,a ,c);
        }else if(c<b){
            printf("%d %d %d\n",b ,c ,a);
        }else{
            printf("%d %d %d\n",c ,b ,a);
        }

    }else if(b>c){
            printf("%d %d %d\n",a ,b ,c);
        }else if(c<a){
            printf("%d %d %d\n",a ,c ,b);
        }else{
            printf("%d %d %d\n",c ,a ,b);
        }
system("PAUSE");
}


Y este otro corresponde a la siguiente consigna, pero si lo modificas, te sirve para el problema que planteas:   
Escribir un programa que indique el número más grande y más pequeño ingresado y el promedio de N números. El valor N se solicitará al principio del programa y los números serán introducidos por el usuario.

Citar
#include <stdio.h>

    void main(){
        int a, b, may, men, prim, val,i,bandera, bandera2, acum=0;
        float prom;
        printf("Ingrese la cantidad de numero que va a usar(Mayor o igual a DOS): ");
        scanf("%d",&val);bandera=1;bandera2=0;

        for(i=1;i<=val;i++){

            printf("\n\nIngrese valor : ");
            scanf("%d", &a);acum=acum+a;
              if(bandera==1){
                prim=a;
                bandera=0;
            }
               if(bandera2==1){
                    if(prim>a){
                        may=prim;
                        if(i==2){men=a;}else{
                            if(men>a){
                               men=a;
                            }}
                    }else { may=a ;
                      if(i==2){ men=prim;
                        }else{
                      if(prim < men){
                            men=prim;}}
                            prim=a;  }
               }
        bandera2=1;
        }
        prom=(acum/val);
        printf("\nEl numero mayor es: %d\n\n",may);
        printf("El numero menor es: %d\n\n",men);
        printf("El promedio es: %.2f\n\n",prom);
system("PAUSE");
    }