/* ORDEDIR.C--Exemplo de Ordenacao por Selecao Direta * Problema: dada uma sequencia de N numeros reais (tipo float) * ordena'-la em ordem crescente. */ #include <stdio.h> #define Nmax 100 /* Numero maximo de elementos em R[] */ int main(){ int N, /* numero de elementos em R[] */ i, j, IndMin; /* indice do minimo temporario */ float R[Nmax], /* vetor de N elementos */ temp; /* variavel temporaria */ /* * Leitura dos parametros */ printf("\nDigitar o numero de elementos de R[] -> "); scanf("%d", &N); printf("\nN = %d\n", N); if(N>Nmax){ printf("\nNumero maximo de elementos foi excedido\n"); exit(0); } /*end if */ printf("Digitar os elementos de R[] a serem ordenados -> "); for(i=0; i<N; i=i+1) scanf("%f", &R[i]); printf("\n"); for(i=0; i<N; i=i+1){ printf("R[%d] = %f", i, R[i]); } /* end for i */ /* Ordenacao dos elementos em R[], em tempo proporcional a N*N */ for(i=0; i<N; i=i+1){ IndMin = i; /* indice do Minimo temporario */ for(j=i+1; j<N; j=j+1){ if(R[IndMin] > R[j]) IndMin = j; } /* end for j */ temp = R[IndMin]; R[IndMin] = R[i]; R[i] = temp; } /* end for i */ /* * Dar resposta final */ printf("\n Elementos de R[], em ordem crescente:\n"); for(i=0; i<N; i=i+1){ printf(" R[%d]=%f ", i, R[i]); } /* end for i */ } /* end main */