大きい順に数字を表示するプログラムがうまくできません
どこが違うのか指摘してもらえませんか?

#include <stdio.h>
void swap(int *nx,int *ny,int *nz)
{ int temp = *nx; *nx = *ny; *ny = *nz; *nz = temp; }
void sort3(int *n1,int *n2,int *n3)
{ if (*n1 > *n2 && *n2> *n3) swap(n1, n2, n3);
else if (*n2 > *n1 && *n1> *n3) swap(n2, n1, n3);
else if (*n1 > *n3 && *n3> *n2) swap(n1, n3, n2);
else if (*n2 > *n3 && *n3> *n1) swap(n2, n3, n1);
else if (*n3 > *n2 && *n2> *n1) swap(n3, n2, n1);
else if(*n3 > *n1 && *n1> *n2) swap(n3, n1, n2); }
int main(void) { int na, nb, nc;
puts("3つの整数を入力してください。");
printf("整数A"); scanf("%d", &na); printf("整数B"); scanf("%d", &nb); printf("整数C"); scanf("%d", &nc);
sort3(&na, &nb, &nc);
puts("これらの降順に並べました。");
printf("整数Cは%dです。\n ", nc); printf("整数Bは%dです。\n ", nb); printf("整数Aは%dです。\n ", na);
return(0); }