Decir si un vector está ordenado o no

publicado por: Anonymous

Muy buenas, ¿alguien puede echarme un mano y decirme por qué escriba lo que escriba siempre me sale el mismo mensaje: “El vector está ordenado de forma creciente.”?

Aquí va el código:

#include <stdio.h>

    void main () {

        int vector [10];
        int i, check;

        printf ("Introduce 10 números: ");
        for (i = 0; i <10; i ++) {
            scanf ("%d", &vector [i]);
        }

        i = 0;
        check = 0; 
        while ((i < 10) && (check == 0)) {
            if ((vector [i]) > (vector [i] + 1)) {
                check = 1;
            }
            i ++;
        }
        if (check == 1) {
            printf ("El vector está ordenado de forma decreciente.n");
        }
        else {
            printf ("El vector está ordenado de forma creciente.n");
        }   
    }

solución

Espero que te sirva esta versión del programa:

#include <stdio.h>

#define SIZE 10
#define true 1
#define false 0

void main ()
{
    int i;
    int vector [SIZE];
    int last;
    int is_creciente = true;
    int is_decreciente = true;

    //
    // Leer vector
    //
    printf ("Introduce %d números: ", SIZE);
    for (i = 0; i <SIZE; i ++)
    {
        scanf ("%d", &vector [i]);
    }
    //
    // Hacer comprobaciones en el vector
    //
    last = vector[0];
    for(i = 1; i < SIZE; i++)
    {
        if(vector[i] < last) is_creciente = false;
        if(vector[i] > last) is_decreciente = false;
        last = vector[i];
    }
    //
    // Imprimir resultados
    //
    if(is_creciente && is_decreciente)
        printf ("El vector tiene todos los valores repetidos.n");
    else if(is_creciente)
        printf ("El vector está ordenado de forma creciente.n");
    else if(is_decreciente)
        printf ("El vector está ordenado de forma decreciente.n");
    else
        printf ("El vector está desordenado.n");

    getchar();
}
Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *