Να συμπληρώσω πως αν η μεταβλητή που θες να διαβάσεις με scanf() είναι τύπου string (δηλαδή πίνακας χαρακτήρων) τότε δεν βάζεις το & μπροστά από το όνομά της στην scanf().
Για παράδειγμα...
- Κώδικας: Επιλογή όλων
char answer[10];
scanf("%s", answer); // και όχι: scanf("%s", &answer);
Προφανώς δεν έχεις φτάσει ακόμα στους δείκτες, οπότε θα προσπαθήσω να στο εξηγήσω με όσο το δυνατόν πιο απλά λόγια, θεωρώντας όμως πως ξέρεις ήδη τι σημαίνει συνάρτηση, έστω κι από άλλη γλώσσα.
Στη C λοιπόν, όταν περνάς μια μεταβλητή ως παράμετρο σε μια συνάρτηση (η scanf() είναι μια στάνταρ συνάρτηση) και θέλεις η συνάρτηση αυτή να αλλάζει την τιμή της μεταβλητής, και η αλλαγή να διατηρηθεί και μετά το τέλος της συνάρτησης, τότε περνάς την μεταβλητή στη συνάρτηση με το σύμβολο & μπροστά (σημαίνει "διεύθυνση").
Αντί να περνάς δηλαδή στη συνάρτηση απλώς τη μεταβλητή, της περνάς έναν δείκτη στη μεταβλητή (βασικά το & δεν είναι ακριβώς δείκτης, αλλά μη σε μπερδεύω τώρα κι άλλο).
Το θέμα είναι πως στη C για τις μεταβλητές που έχουν οριστεί ως πίνακες (όπως η answer[10] στο παραπάνω παράδειγμα, που είναι πίνακας 10 χαρακτήρων) μπορούμε να θεωρήσουμε το όνομά τους ως δείκτες στην 1η θέση του πίνακα. Άρα το answer είναι ήδη δείκτης, οπότε όταν το περνάς σαν όρισμα στην scanf() δεν του βάζεις το & μπροστά (αν το βάλεις, θα το θεωρήσει δείκτη σε δείκτη).
Ελπίζω να μη σε μπέρδεψα χειρότερα. Αν θες να τα διαβάσεις πιο αναλυτικά, δες
αυτή εδώ τη δημοσιεύσή μου (και την αμέσως προηγούμενη της, και καλύτερα να διαβάσεις αυτή την προηγούμενη πρώτα

).