Aller au contenu
  • Pas encore inscrit ?

    Pourquoi ne pas vous inscrire ? C'est simple, rapide et gratuit.
    Pour en savoir plus, lisez Les avantages de l'inscription... et la Charte de Zébulon.
    De plus, les messages que vous postez en tant qu'invité restent invisibles tant qu'un modérateur ne les a pas validés. Inscrivez-vous, ce sera un gain de temps pour tout le monde, vous, les helpeurs et les modérateurs ! :wink:

Gestion de tableau


bloodyxdeath

Messages recommandés

Salut tout le monde !!

 

Voila je dois faire des exercices en C mais j'ai un peu de mal, j'aimerais si possible avoir un petit coup de main.

 

Je vais vous expliquer en allant...

Voici mon code pour le main, c'est ici que se trouve les declarations de mes fonctions et mon menu :

 

#include <iostream.h>
#include <string.h>
#include <stdio.h>
#include <conio.h>
#define vide "\0"

struct element{char nom[30];};

int ajouter (element t_nom[], int i);
void lecture (element t_nom[], int i);
int insertion (element t_nom[], int i);
//int suppression (element t_nom[], int i);
void rechercher (element t_nom[]);

void main()
{
int choix=0;
int i=0;

element t_nom[10];
while (choix != 6)
{
 cout<<".::. GESTION DE TABLEAU .::.\n\n";
 cout<<"Ajouter.............. [1]\n";
 cout<<"Lecture.............. [2]\n";
 cout<<"Insertion............ [3]\n";
 cout<<"Suppression.......... [4]\n";
 cout<<"Rechercher........... [5]\n";
 cout<<"Sortir............... [6]\n\n";
 cout<<"Votre choix ? ";
 cin>>choix;

 switch (choix)
 {
 	case 1: i=ajouter(t_nom,i);
 	break;
 	case 2: lecture(t_nom,i);
 	break;
 	case 3: i=insertion(t_nom,i);
 	break;
 	/*case 4: i=suppression(t_nom,i);
 	break;*/
 	case 5: rechercher(t_nom);
 	break;
 	//default : cout<<"Choix incorrect\n";*/
 };
}
}

 

Ensuite voici ma premiere fonction 'Ajouter' qui me permet de remplir le tableau :

 

int ajouter(element t_nom[], int i)
{
cout<<"Saisir un nom ($ pour arreter) : ";
cin>>t_nom[i].nom;
while (strcmp (t_nom[i].nom, "$") !=0 && i<=8)
{
 i++;
 cout<<"Saisir un nom ($ pour arreter) : ";
 cin>>t_nom[i].nom;
 if (i==9)
 	cout<<"Tableau rempli...\n";
}
cout<<" " << i;
return i;
}

 

La seconde qui me permet d'afficher le contenu du tableau 'Lecture' :

 

void lecture(element t_nom[10], int i)
{
int j=0;
while (strcmp (t_nom[j].nom, "$") !=0 && j<=9)
{
 cout<<t_nom[j].nom<<"\n";
 j++;
}
cout<<"\n";
}

 

Maintenant ma 3eme fonction, qui devrait permettre d'inserer une nouvelle chaine ds le tableau sans ecraser les autres. Mais cette fois, ca ne fonctionne pas, et j'ai du mal a saisir pourquoi... :/

 

int insertion(element t_nom[], int i)
{
int rang=0;
int j=0;
char mot[30];
cout<<"Inserer à quel rang ?\n";
cin>>rang;
while ((strcmp (t_nom[j].nom, "$") !=0) && i<=9)
{
 i++;
}

if (i>9)
 cout<<"Tableau complet";
else
{
 if (rang>i)
 	cout<<"Impossible";
 else
 {
 	for (j=rang;j>=rang;j--)
 	{
   strcpy(t_nom[j+1].nom,t_nom[j].nom);
 	};
 	cout<<"Mot à inserer ?";
 	cin>>mot;
 	strcpy(t_nom[rang].nom,mot);
 }
}
 return i;
}

 

Ensuite, la fonction 'Supprimer' que je n'ai pas encore fait :/

 

/*int suppression(element t_nom[10], int i)
{
while (*/

 

Et pour finir la fonction 'Rechercher' pour trouver le rang d'une chaine ds le tableau, je crois que cette fonction est operationnel :

 

void rechercher(element t_nom[])
{
int i=0;
char mot[30];
cout<<"Que recherchez vous ? ";
cin>>mot;
while (strcmp(mot,t_nom[i].nom) !=0 && strcmp(t_nom[i].nom,vide) !=0 && i<9)
 i++;
if (strcmp(t_nom[i].nom,mot)==0)
{
 cout<<"Le rang est : ";
 cout<<i;
 cout<<"\n\n";
}
else
 cout<<"Ce nom n'existe pas dans le tableau\n";
}

 

Voila, ce que j'aimerais, ce n'est pas qu'on me fasse le truc pour que je n'ai plus qu'a copier/coller par la suite, cela ne m'avancerai a rien, a partir du moment ou je ne comprends pas, mais j'aimerais si possible, des idees, un coup de main, enfin ce qui est possible de faire pour m'aider pour que ma fonction 'Insertion' fonctionne et que j'avance ds ma fonction 'Supprimer' !

 

Merci d'avance :P

Lien vers le commentaire
Partager sur d’autres sites

  • 3 semaines après...

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.
Remarque : votre message nécessitera l’approbation d’un modérateur avant de pouvoir être visible.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

  • En ligne récemment   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
×
×
  • Créer...