Προφανώς δεν έχει επί της ουσίας νόημα η απαντησή μου σε μια τέτοια χρονική περίοδο μιας και σίγουρα έχεις παραδώσει την άσκηση όπως και πολύ πιθανόν να έχεις βρει και την λύση. Αλλά για λόγους πληρώτητας θα απαντήσω. Όταν λοιπόν διαβάζουμε με την scanf ή με την getchar έναν μόνο χαρακτήρα ( char ) πχ scanf( "%c", &c) ή c = getchar(); ή οποιονδήποτε άλλο τύπο δεδομένων και όχι string, ο χαρακτήρας αλλαγής γραμμής (\n) μένει στον buffer, οπότε την επόμενη φορά που θα ζητηθεί να διαβαστεί απλος χαρακτήρας με μιά getchar(), θα διαβάσει τον χαρακτήρα αλλαγής γραμμής και θα συνεχίσει στην επόμενη εντολή, αυτό είναι που συμβαίνει και σε εσένα. Ένας απλός τρόπος για να το λύσεις αυτό το πρόβλημα είναι να βάζεις μαζί δύο getchar() ή scanf. Η πρώτη θα είναι για τον χαρακτήρα που θα θέλεις να κρατήσεις και η δεύτερη για να διαβάζει τον χαρακτήρα αλλαγής γραμμής. Φυσικά η δεύτερη μεταβλητή πρέπει να είναι κάποια άκυρη και όχι από αυτές που θα χρειαστείς παρακάτω. Όπότε έλυσα το πρόβλημα σου με τον τρόπο που περιέγραψα παραπάνω. Έβαλα λοιπόν μετά την scanf( "%c", &opt ) μια opt2 = getchar() για να διαβάσει τον χαρακτήρα αλλάγης γραμμής. Το ίδιο έκανα και σε οποιαδήποτε ακολουθούμενη scanf ή getchar(). Αυτό χρειάζεται να γίνει και στις scanf μέσα στις for, γιατί κάθε φορά που θα τρέξει μια από τις εσωτερικές αυτές scanf θα αποθηκευτεί και ένας χαρακτήρας αλλάγης γραμμής στον buffer οπότε πρέπει και κάθε φορά να τον βγάζουμε από τον buffer. Ο διορθώμένος κώδικας δίνεται παρακάτω.
Υ.Γ.
Επίσης ο κώδικας είχε και δύο λογικά λάθη για να τρέξει σωστά( τουλάχιστον για να φαίνεται ότι τρέχει σωστά ). Το πρώτο είναι στην συνάρτηση locate. Στον έλεγχο που κάνεις στο τέλος για να δεις αν τελικά βρέθηκε το στοιχείο μέσα στον πίνακα. Ο έλεγχος που κάνεις για το αν η αναζήτηση έχει φτάσει μέχρι το τέλος του πίνακα prospelasi==data+9, δεν είναι απαραίτητη αλλά από την άλλη όμως είναι πληρέστερος σαν έλεγχος. Αλλά όμως για κάποιο λόγο δεν λειτουργούσε σωστά, δεν τον έψαξα να τον βρω, και έτσι πάντα εμφάνιζε ότι βρέθηκε κάποιο στοιχείο μέσα στον πίνακα ακόμα και αν δεν υπήρχε. Όποτε εξαιτίας του ότι δεν ήταν αναγκαία συνθήκη την έβγαλα και τρέχει μια χαρά. Το δεύτερο είναι εκεί που διαβάζεις τους ακέραιους από τον χρήστη με την scnaf( "%d", dedomena ). Με αυτό που γράφεις ουσιαστηκά αυτό που κάνεις είναι να αποθηκεύεις τον ακέραιο που δίνει ο χρήστης στο πρώτο στοιχείο του πίνακα dedomena συνέχεια, αυτό γιατί το dedomena σκέτο είναι αντίστοιχο του dedomena[0]. Από την στιγμή όμως που τις διευθήνσεις των στοιχείων του πίνακα dedomena τις έχεις περάσει στο i μπορείς αντί για dedomena να βάλεις το i που σε κάθε επανάληψη περιέχει την σωστή διεύθηνση του πίνακα dedomena.
Υ.Γ.2
Δεν ξέρω βέβαια πόσο καιρό προγραμματίζεις, αλλά θα σου συνηστούσα τον κώδικα τουλάχιστον που δίνεις στους άλλους να δούνε, να τον γράφεις λίγο πιο καθαρά έτσι ώστε να είναι εύκολο και για τον άλλον να τον διαβάσει χωρίς να το ψάχνει. Δεν το λέω με κακή προαίρεση σε καμιά περίπτωση.
Ελπίζω να σε βοηθίσει έστω και λίγο καθηστεριμένα

.
- Κώδικας: Επιλογή όλων
#include<stdio.h>
void locate(int data[10],int element);/*Function anazitisis. Dehetai san dedomena to pinaka kai to stoiheio pros anazitisi*/
void arhikopoihsi(int [10]);//Function arhikopoiisis
void arhikopoihsi(int table[10])
{
int *i;
for(i=table;i<table+10;i++){*i=0;}
}
void locate(int data[10],int element)
{
int *prospelasi;//Pointer se akaireo gia prospelash tou pinaka
for(prospelasi=data;prospelasi<data+10;prospelasi++)
if(*prospelasi==element)
break;/*Me thn entoli break otan vrethei to stoixeio vgainei apo to loop*/
if(*prospelasi!=element)
printf("Slide for uknown element\n");
/*A iphone-look error message for element whitch not found in table*/
else
printf("The element found!!!!!\0");//Mynhma euresis stoiheiou.
}
int main()
{
int dedomena[10],search,*i;
char opt,opt2;
arhikopoihsi(dedomena);
do{
//A menu like-made ncurses (http://en.wikipedia.org/wiki/Ncurses)
printf("What do u want to do?\n");
printf("I)nsect\n");
printf("S)earch\n");
printf("You should enter the letter whitch is before ')' for each function\n");
opt = getchar();
opt2 = getchar();
if(opt=='I')
{
for(i=dedomena;i<dedomena+10;i++)
{
printf("Enter an interger\n");
scanf("%d", i);
opt = getchar();
}
}
else if(opt=='S')
{
printf("Enter an interger to search\n");
scanf("%d",&search);
opt = getchar();
locate(dedomena,search);
}
printf("Press y to continue the program or press anything else to exit\n");
opt2 = getchar();
opt = getchar();
}while(opt2=='y'||opt2=='Y');
return 0;
}