Το κύριο λάθος που βλέπω είναι ότι στην printf δεν θέλει &, καθώς θες να τυπώσεις το χαρακτήρα και όχι τη διεύθυνση μνήμης.
Δεν ξέρω αν έχουν δώσει οι διδάσκοντες οδηγίες για να ενεργοποιείς τα warnings στο Dev-C++, αλλά νομίζω θα ήταν μία καλή ευκαιρία να το ψάξεις, γιατί βρίσκεις ενδιαφέροντα πράγματα (θα παρέθετα οδηγίες εδώ αλλά δεν βρήκα κάτι με πρόχειρο γουγλάρισμα...):
foo.cpp: In function ‘int main()’:
foo.cpp:16:10: warning: format ‘%c’ expects argument of type ‘int’, but argument 2 has type ‘char*’ [-Wformat=]
printf("%c", &st[i]);
^~~~ ~~~~~~
foo.cpp:7:9: warning: unused variable ‘k’ [-Wunused-variable]
int N, k=0;
^
Από εκεί και πέρα, ο κώδικάς σου έχει κάποια λαθάκια, κυρίως σχετικά με το πώς διαχειρίζεσαι την αλλαγή γραμμής. Η scanf διαβάζει και τον χαρακτήρα αλλαγής γραμμής (που ενδέχεται να είναι και 2 χαρακτήρες στα Windows), και εισάγεις έναν τέτοιο χαρακτήρα όταν πατάς το enter μετά τον αριθμό σου [1]. Οπότε για N < 2-3 το πρόγραμμά ενδέχεται να τερματίσει αμέσως, ενώ για μεγαλύτερα N θα σου φάει τους πρώτους 1-2 χαρακτήρες.