#include #include troca(int *v1, int *v2) { int temp; temp=*v1; *v1=*v2; *v2=temp; } int main() { int a,b,c; printf(">> Ordena 3 Valores usando Trocas <<\n"); printf("\n"); printf("Digite o valor inteiro A: "); scanf ("%d",&a); printf("Digite o valor inteiro B: "); scanf ("%d",&b); printf("Digite o valor inteiro C: "); scanf ("%d",&c); printf("\n"); printf("Valores Originais: \n"); printf("%d, %d, %d\n",a,b,c); if (a > b) troca(&a,&b); if (b > c) troca(&b,&c); /* Precisa testar de novo "a" com "b", pois pode ter mudado "b") */ if (a > b) troca(&a,&b); /* Atencao: ao trocar "valor do meio"(b) com "valor do fim"(c), pode ser que o "valor do meio"(b resultante da troca) ainda seja menor que o "primeiro valor"(a), por isso tem que testar novamente comparando (a) com (b) Exemplo: 8 4 1 => 1a Troca: (4 8) 1 => 2a. Troca: 4 (1 8) => 3a. Troca: (1 4) 8 */ printf("\n"); printf("Valores Ordenados: \n"); printf("%d, %d, %d\n",a,b,c); printf("\n"); printf("FIM!\n"); system("pause"); return 0; }