برنامج بلفة c أرجو منكم تصحيح الأخطاء


(system) #1

سم الله الرحمن الرحيم
لقد قمت بكتابة برنامج بلغة الC(في الأسفل) وهو عبارة عن امتحان لي مع العلم أني مبتدئ في اللغة وفي المجال بشكل عام وأرجو منكم إخوتي وأخواتي الأعزاء أن تقوموا بالإطلاع على البرنامج وتنبيهي على الأخطاء الموجودة فيه وشرح موضع الخطأ وبالتفصيل الممل إن سمحتم وسأكون شاكرا لكم وأرجو تقديم بعض الإرشادات والنصائح حول البرنامج واللغة ككل وأي شيء يمكنه مساعدتي على الفهم بشكل واضح للمجال"البرمجة…"…وشكرا
وها هو نص التمرين هنا مع العلم أنه يشترط في التمرين ألا أقوم بأي تغيير في البرنامج الأصلي "Programme Principale"أوفي و Variables globales ولكن يسمح بالإضافة في les Procedures
وها هو البرنامج /:

[LEFT]#include<stdio.h>
#include <conio.h>

typedef struct S_ElementFile{

int val ;
struct S_ElementFile* suivant ;
}elementfile;

int i, choix ;
int fileactuelle ;
elementfile* tete[5] ;
elementfile* queue[5] ;

/* Procédure 1 */

void affichernumero(int* nb) {

*nb = fileactuelle ;
}

/* Procedure 2 */

void changerfile(int*chang) {

scanf("%d",&i);
*chang = i ;
fileactuelle = *chang ;

printf(“
you are in file number %d in adresse%p”,fileactuelle,tete[i]->suivant) ;

}

/* Procedure 3 */

void ajouterelement(elementfile* liste,int *Nb int valu char s) {

elementfile* nouv ;

printf (“dans quelle file vous voulez ajouté cet nouveau element”)
printf("entre nombre de file que vous avez ajouté cet nouveau elemnt : ");
scanf("%d",*Nb);
i=*Nb;

if (tete[i]==NULL){
printf("la file est vide ");

nouv = malloc(sizeof(elementfile));
scanf("%d",&nouv->val);
tete[i]=nouv;
queue[i]=NULL
tete[i]->suivant=queue;

}
else{
printf ("si vous voudrez lajouté en debut cliquez sur “D"ou bien en a la fin cliquez sur “F””);

scanf("%c",&s);

switch (s)
{
case ‘D’:
case ‘d’:
{

nouv = malloc(sizeof(elementfile));

scanf("%d",&nouv->val);

nouv->suivant = tete[i];
tete[i] = nouv;
break;
}

case ‘F’:
case ‘f’:
{
queue[i]=NULL;
while (liste->suivant!= queue){
liste = liste->suivant;

}
nouv = malloc(sizeof(elementfile));

scanf("%d",&nouv->val);
nouv->suivant = queue;
liste->suivant= nouv;

break;
}

default:
printf(“Erreue in choice !! Exit…
”);

break;

}
fileactuelle=*Nb;
}

/* Procedure 4 */

void retirerelement(elementfile* liste,int *Nb ) {

elementfile* nouv ;

printf (“dans quelle file vous voulez retiré un element”)
printf("entre nombre de file que vous avez retiré le element : ");
scanf("%d",*Nb);
i=*Nb;

if (tete[i]==NULL) printf("la file est vide ");

else {
queue[i]=NULL;
while (liste->suivant!= queue){
liste = liste->suivant;
nouv=liste;
while(liste->suivant!= queue){
liste=liste->suivant;
}
}

nouv->suivant= queue;
liste->suivant=NULL;
free (liste);
liste=nouv;
liste->suivant=queue;

}
fileactuelle=*Nb;
}

/Procedure5/

void afficherelements(elementfile* liste,int *valu){

int no=0;
elementfile*afich;

printf("entre nombre de liste que vous voulez afficher ");

scanf("%d",*valu);
i=*valu;
fileactuelle=*valu;
queue= NULL
printf("%d",tete[i]->val);
while(liste!=queue){
printf("%d",liste->val);
liste=liste->suivant;
no++;

}

}

/Programme Pricipale/

void main () {

fileactuelle = 0;

for( i= 0 ; i<5 ;i++){

tete[i] = NULL;
queue[i]= NULL;
}
do {

clrscr;
[SIZE=4][SIZE=4][SIZE=3] printf("


“);[/size][/size][/size]
[SIZE=4][SIZE=4][SIZE=3] printf(”

  • 1- Afficher le numéro de la file actuelle *
    ");[/size][/size][/size]
    [SIZE=4][SIZE=4][SIZE=3] printf("
  • 2- Changer la file actuelle *
    ");[/size][/size][/size]
    [SIZE=4][SIZE=4][SIZE=3] printf("
  • 3- Ajouter un élément dans la file actuelle *
    ");[/size][/size][/size]
    [SIZE=4][SIZE=4][SIZE=3] printf("
  • 4- Retirer un élément de la file actuelle *
    ");[/size][/size][/size]
    [SIZE=4][SIZE=4][SIZE=3] printf("
  • 5- Affichage de la file actuelle *
    ");[/size][/size][/size]
    [SIZE=4][SIZE=4][SIZE=3] printf("
  • 0- Quitter *
    ");[/size][/size][/size]
    [SIZE=4][SIZE=4][SIZE=3] printf("

");[/size][/size][/size]
printf(“
Introduisez votre choix:”);

/* Lire le choix*/

scanf("%d",&choix);

switch (choix){

case 1: affichernumero(); break;
case 2: changerfile(); break;
case 3: ajouterelement(); break;
case 4: retirerelement(); break;
case 5: afficherelement(); break;
default: printf(“Erreur de choice!! Exit…”); break;
}

}while(choix!=0);

printf(“programme est quitté !”);
}

[/left]




(system) #2

ولا رد…؟؟؟؟؟؟؟؟؟؟؟؟