2010-07-04 6 views
0

J'ai deux problèmes mineurs dans ce code mais je suis incapable de les obtenir. je l'ai mentionné sur les lieux le compilateur donne error.There sont deux d'entre eux ci-dessous:compilateur dit déclaration manquant;

#include<stdio.h> 
#include<conio.h> 
#include<stdlib.h> 
#define SIZE 100 
int count; 

void menu(void); 
void input(int[]); 
void print(int[]); 
void insert(int[]); 
void delete_element(int arr[]); 
void search(int arr[]); 

void main(void) 
{ 
    int arr[SIZE]; 
    char choice; 
    while(1) 
    { 
    menu(); 
    choice=getche(); 
    switch (choice) 
    { 
     case'1':input(arr);break; 
     case'2':delete_element(arr);break; 
     case'3':insert(arr);break; 
     case'4':print(arr);break; 
     case'5':search(arr);break; 
     case'6':exit(0);//from stdlib.h 
     default:printf("Enter valid choice!"); 
    } 

    getch(); 
    } 

void print(int arr[]) 
{ // says declaration syntax error here 
    int i; 
    for(i=0;i<count ;i++) 
    printf("element is %d",arr[i]); 

} 

void input(int arr[]) 
{ 
    if(count<SIZE) 
    for(count=0; ;count++) 
    { 
     printf("Enter element %d:",i+1); 
     scanf("%d"&arr[i]); 
     if(arr[count]==0) 
     { 
     count--; 
     break; 
     } 
    } 
} 

void insert(int arr[]) 
{ 
    int i,value,index; 
    if(count==SIZE) 
    printf("Not enough space to perform insertion"); 
    else 
    { 
    printf("Enter value and index:"); 
    scanf("%d",&value,&index); 
    for(i=index;i<=LEN;i++) 
    { 
     arr[i]=arr[i-1]; 
    } 
    arr[index]=value; 
    count++; 
    printf("insertion succesful"); 
    } 
} 

void delete_element(int arr[]) 
{ 
    int index,i; 
    if(count==0) 
    { 
    printf("Empty array"); 
    } 
    else 
    { 
    printf("Enter Index:"); 
    scanf("%d",&index); 
    for(i=index;i<LEN;i++) 
    { 
     arr[i]=arr[i+1] 
    } 
    count--; 
    printf("Delete succesful."); 
    } 
} 

void search(int arr[]) 
{ 
    int value,flag=0,i; 
    printf("Enter value:"); 
    scanf("%d",&value); 
    for(i=0;i<count;i++) 
    { 
    if(arr[i]==value) 
    { 
     printf("Value %d is found at index:",value,index); 
     flag=i; 
    } 
    } 
    if(!flag) 
    printf("Value not found"); 
    printf("Search Complete"); 
} 

} //       declaration missing ; here 
+5

Vos erreurs deviendront plus évidentes si vous formatez le code correctement: alignez les accolades et indentez les blocs internes. – Stephen

+0

De plus, il y a toute une discussion sur le fait que 'void main (void)' est correct ou pas. Peu de temps la réponse est: vérifiez si elle est correcte __for__ votre système. En raison de 'conio.h' je suppose que c'est Windows, et sur Windows, afaik, vous devriez utiliser' int main (void) 'ou' int main() '(les deux sont ok pour std, mais ce dernier pour quelqu'un sonne" obsolescent ") – ShinTakezou

Répondre

7

Pour un, il vous manque un point-virgule ici:

for(i=index;i<LEN;i++) 
{ 
    arr[i]=arr[i+1] // Missing semicolon! 
} 

Vous avez également fermez pas votre fonction main avec une accolade droite. Déplacez l'accolade à la fin du programme avant votre implémentation de print().

Encore un point sur la lisibilité. Assurez-vous de mettre en retrait après les accolades ouvertes et à l'intérieur des instructions if. Les lignes suivantes sont confuses car il n'est pas clair que seul le premier printf fait partie de l'instruction if. Au lieu de cela, indentez la deuxième ligne, et pour plus de clarté, vous pourriez vouloir utiliser des accolades. Par exemple:

if(!flag) 
{ 
    printf("Value not found"); 
} 
printf("Search Complete"); 
+0

Remplacer aussi' printf ("La valeur% d est trouvée à l'index:", value, index); 'avec' printf ("Valeur% d se trouve à l'index% d", valeur, i); ' – Yktula

+1

Meh, quand les gens disent 'votre code est illisible', ils veulent dire 'votre code est illisible pour * moi *'. Au final, il s'agit de conventions et de ce à quoi vous êtes habitué, un exemple courant est un texte formaté sans ponctuation ou ponctuation, les gens ont tendance à ne pas voir que les gens qui écrivent comme ça peuvent le lire assez facilement, parce qu'ils ont l'habitude de il. N'oublions pas qu'environ 95% des scripts de l'histoire du monde n'utilisaient aucune forme de ponctuation. Les personnes qui n'indentent pas ou utilisent toujours des accolades peuvent parfaitement lire leur code car, bien sûr, pour la plupart des projets, le code doit aussi être lu par d'autres ... – Zorf

+0

et définir LEN, qui revient à 'pour (i = index; i Yktula

3

Vous déclarez des fonctions dans le principal, ce qui est incorrect. Retirez la dernière accolade droite et insérez-en une avant void print. Vous devez formater votre code de manière cohérente et lisible.

Questions connexes