mic-chan | voici le code des programmes concernés, ils compilent et (d'habitude) s'executent correctement
main
Code :
- #include "tab_personne.h"
- #include <stdio.h>
- #include <string.h>
- int main() {
- Personne tab_pers[MAX_PERS];
- char nom[LONG_CHAINE];
- Personne p;
- int taille;
- int choix,place;
- printf("Quel est le nombre de personne (Max=%d) :",MAX_PERS);
- scanf("%d",&taille);
-
- Saisir(tab_pers,taille);
- Trier(tab_pers,taille);
- Afficher(tab_pers,taille);
- choix=-1;
- while (choix != 0) {
- printf(".: Menu :. \n" );
- printf(" (0) Quitter \n (1) Recherche \n (2) Insertion \n (3) Suppression \n (4) Affichage \n" );
- scanf("%d",&choix);
- switch (choix) {
- case 1 : {
- printf("Qui recherchez-vous ?" );
- scanf("%s",nom);
- strcpy(p.cnom,nom);
- place=RechercherDicho(tab_pers,taille,p);
- if (place!=-1) {
- printf("%s a %d ans \n",tab_pers[place].cnom,tab_pers[place].cage);
- }else{
- printf("%s n'est pas dans le tableau\n",nom);
- }
- break;
- }
- case 2 : {
- printf("Nom : " );
- scanf("%s", p.cnom);
- printf("Age : " );
- scanf("%d", &p.cage);
- taille = Inserer(tab_pers,taille,p);
- break;
- }
- case 3 : {
- printf("Nom : " );
- scanf("%s", p.cnom);
- taille = Supprimer(tab_pers,taille,p);
- break;
- }
- case 4 : {
- Afficher(tab_pers, taille);
- }
- }
- }
- }
|
tab_personne.h
Code :
- #ifndef _Personne
- #define _Personne
- #define MAX_PERS 30
- #define LONG_CHAINE 20
- typedef struct {
- char cnom[LONG_CHAINE];
- int cage;
- } Personne;
- void Saisir(Personne t[],int n);
- void Afficher(Personne t[],int n);
- void Trier(Personne t[],int n);
- int Inserer(Personne t[],int n,Personne p);
- int RechercherDicho(Personne t[],int n,Personne p);
- int Supprimer(Personne t[],int n,Personne p);
- #endif
|
tab_personne.c
Code :
- #include "tab_personne.h"
- #include <stdio.h>
- #include <string.h>
- void Saisir(Personne t[],int n) {
- int i;
- for (i=0;i<n;i++) {
- printf("Saisir le nom de l'individu : " );
- scanf("%s",t[i].cnom);
- printf("Entrer son age : " );
- scanf("%d",&t[i].cage);
- }
- }
- void Afficher(Personne t[],int n){
- int i;
- for(i=0;i<n;i++){
- printf("Personne %d :\n",i+1);
- printf("Nom : %s\n",t[i].cnom);
- printf("Age : %d\n",t[i].cage);
- }
- }
- void Trier(Personne t[],int n) {
- int i,j,fin;
- fin=1;
- i=n-1;
- Personne temp;
- while ((fin == 1)&&(i>0)) {
- fin=0;
- for (j=0;j<i;j++) {
- if (strcmp(t[j].cnom,t[j+1].cnom)>0) {
- strcpy(temp.cnom,t[j].cnom);
- temp.cage=t[j].cage;
- strcpy(t[j].cnom,t[j+1].cnom);
- t[j].cage=t[j+1].cage;
- strcpy(t[j+1].cnom,temp.cnom);
- t[j+1].cage=temp.cage;
- fin=1;
- }
- }
- i--;
- }
- }
- int Inserer(Personne t[],int n,Personne p) {
- int i=n-1;
- while (strcmp(p.cnom,t[i].cnom)<0) {
- t[i+1]=t[i];
- i--;
- }
- strcpy(t[i+1].cnom,p.cnom);
- t[i+1].cage=p.cage;
- return n+1;
- }
- int RechercherDicho(Personne t[],int n,Personne p) {
- int binf=0;
- int bsup=n-1;
- int trouve=1;
- int place;
- int res=-1;
- while ((trouve == 1)&&(binf <= bsup)) {
- place=(binf+bsup)/2;
- if (strcmp(t[place].cnom,p.cnom)==0){
- trouve=0;
- res=place;
- }else{
- if (strcmp(t[place].cnom,p.cnom)>0){
- bsup=place-1;
- }else{
- binf=place+1;
- }
- }
- }
- return res;
- }
- int Supprimer(Personne t[],int n,Personne p) {
- int place=RechercherDicho(t,n,p);
- int i;
- for (i=place;i<n-1;i++) {
- t[i]=t[i+1];
- }
- strcpy(t[n-1].cnom, "" );
- t[n-1].cage = 0;
- return n-1;
- }
|
j'ai aussi un makefile Code :
- OBJS = tab_personne.o main.o
- CC = gcc
- CFLAGS = -Wall -g
- all : $(OBJS)
- $(CC) $(OBJS) -o executable
- tab_personne.o : tab_personne.c tab_personne.h
- $(CC) $(CFLAGS) -c tab_personne.c -o tab_personne.o
- main.o : main.c
- $(CC) $(CFLAGS) -c main.c -o main.o
- clean :
- rm -f executable core *.o
- extremiste :
- rm -f *~
|
la commande make me créé le fichier nommé executable et quand j'ecrit executable dans le terminal j'ai un command not found Message édité par mic-chan le 01-03-2007 à 21:18:54
|