Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1446 connectés 

  FORUM HardWare.fr
  Programmation
  C

  Devoir programmation en C.

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Devoir programmation en C.

n°1374847
rudy1895
Posté le 25-05-2006 à 12:14:39  profilanswer
 

A rendre dans une semaine. entre 1 controle d'algèbre, analyse, proba stat, microeco, politique eco..
 
ça va être chaud chaud chaud...
 
 
alors les gars il faut m'aider, je vous rendrait tous les services en maths que vous voulez, mais en C je suis vraiment trop une merde.
 
voila le programme à faire :
 
a l'aide d'un tableau de personnes (nom, prenom, date de naissance, lieu de naissane, n° passeport, date de délivrance du passeport), ecrire un programme C qui permet de rentrer les données des personnes rentré au clavier (on les rentre tous d'un coup), et qui ensuite, effectue une recherche automatique de toutes les personnes selon leur nom, ou prenom, ou date....
par exemple, tous les gars qui s'appellent patrick, ou franck..
 
 
amusez vous bien. je sais qu'il y a des vrais bêtes dans le coin, j'ai un peu honte, ça va rire..
 
 

mood
Publicité
Posté le 25-05-2006 à 12:14:39  profilanswer
 

n°1374850
zapan666
Tout est relatif
Posté le 25-05-2006 à 12:19:18  profilanswer
 

Citation :

[0D] De la même manière, les demandes de résolutions d'exercices ne seront pas acceptées
 
    * Du moins, s'il s'agit d'une demande de solution toute faite, sans effort manifeste du côté du demandeur. Cette décision a été prise étant donné le nombre croissant de ce type de demandes lors des périodes de reprise des cours ou d'approche des périodes d'examens.
    * Merci aux membres du forum de ne pas donner des résolutions d'exercice lorsqu'il est clair que le demandeur n'a rien fait de son côté ;)  


http://forum.hardware.fr/forum2.ph [...] 544&cat=10
 
De rien


---------------
my flick r - Just Tab it !
n°1374864
Sve@r
Posté le 25-05-2006 à 12:43:33  profilanswer
 

rudy1895 a écrit :

A rendre dans une semaine. entre 1 controle d'algèbre, analyse, proba stat, microeco, politique eco..
 
ça va être chaud chaud chaud...


Hé oui, c'est la dure loi de la sélection des meilleurs...
 

rudy1895 a écrit :

alors les gars il faut m'aider


T'as raison, il le faut !!!
Je me sens déjà tout entier rempli de cette mission  :sol:  
 

rudy1895 a écrit :

, je vous rendrait tous les services en maths que vous voulez, mais en C je suis vraiment trop une merde.


Apparemment t'es pas non plus un crack de la conjugaison ;) Bon heureusement qu'il te reste les maths...
 

rudy1895 a écrit :

amusez vous bien. je sais qu'il y a des vrais bêtes dans le coin, j'ai un peu honte, ça va rire..


Oui, je ris déjà beaucoup à l'idée de voir ce que t'as déjà pondu...  :D
 
 :non: Montre-nous ce que t'as fait et on te dira si c'est correct (comme on le fait déjà pour d'autres). Mais ne compte pas sur nous pour bosser à ta place... => http://forum.hardware.fr/forum2.ph [...] 40&print=0


Message édité par Sve@r le 25-05-2006 à 13:30:33

---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
n°1374879
Elmoricq
Modérateur
Posté le 25-05-2006 à 13:18:56  profilanswer
 

rudy1895 a écrit :

A rendre dans une semaine. entre 1 controle d'algèbre, analyse, proba stat, microeco, politique eco..
 
ça va être chaud chaud chaud...


 
http://pix.nofrag.com/cf/86/e6c8187e7083e196935c74c358d5.jpg

rudy1895 a écrit :

alors les gars il faut m'aider


http://pix.nofrag.com/1f/3c/bc040e0b72c218d2b7a13c6e4a59.gif
 

rudy1895 a écrit :

je vous rendrait tous les services en maths que vous voulez


http://pix.nofrag.com/a2/72/4178c61063c799f408b1904f6f56.gif
 

rudy1895 a écrit :

amusez vous bien.


http://cytrouille.free.fr/hfr/divers/jospin_mini2.jpg

n°1374889
LePhasme
Les Belges domineront le monde
Posté le 25-05-2006 à 13:33:54  profilanswer
 

Indices :
 
Tableau de structures
Entrées clavier
Chaines de caractères.

n°1374898
Sve@r
Posté le 25-05-2006 à 13:49:26  profilanswer
 

LePhasme a écrit :

Indices :
 
Tableau de structures
Entrées clavier
Chaines de caractères.


... et beaucoup d'autres chapitres de ton livre de C... [:aloy]


Message édité par Sve@r le 25-05-2006 à 13:52:52

---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
n°1374916
rudy1895
Posté le 25-05-2006 à 14:23:38  profilanswer
 

ah la la..
 
bon va falloir que je bosse.  
 
je vous poste ce que j'ai fait dans la journée.
 
si vous pouvez jeté un coup d'oeil c'est sympa..

n°1374918
flo850
moi je
Posté le 25-05-2006 à 14:26:27  profilanswer
 

rudy1895 a écrit :

ah la la..
 
bon va falloir que je bosse.  
 
je vous poste ce que j'ai fait dans la journée.
 
si vous pouvez jeté un coup d'oeil c'est sympa..


 
ca c'est deja une attitude plus constructive


---------------

n°1374920
Sve@r
Posté le 25-05-2006 à 14:41:49  profilanswer
 

rudy1895 a écrit :

ah la la.. bon va falloir que je bosse.


On est tous passés par là et on espère tous que tu réussiras  :bounce:  
 

rudy1895 a écrit :

si vous pouvez jeter un coup d'oeil c'est sympa..


On le fera...


Message édité par Sve@r le 25-05-2006 à 14:42:44

---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
n°1374932
Je@nb
Kindly give dime
Posté le 25-05-2006 à 15:14:34  profilanswer
 

Allez si tu veux je te le fais gratos, ca n'a pas l'air trop dur, j'en ai pour 3 heures, par contre je pourrais que le faire le weekend prochain donc si tu as le temps ....
 
Tu viens d'où ?

mood
Publicité
Posté le 25-05-2006 à 15:14:34  profilanswer
 

n°1374941
rudy1895
Posté le 25-05-2006 à 15:42:42  profilanswer
 

je l’ai fait avec seulement 2 informations par personnes. Désolé mais j’ai pas trvouver les accolades sur mon mac, ni le slash du retour chariot. Voici le chef-d’œuvre..
 
#include <stdio.h>
#include <strings.h>
  typedef Nmax=1000
  personne struct ( char nom tab(15); char prenom tab(20)....)
 
main()
(/*déclaration des variables*/
 int n, i
 struct personne tab();  
 char recherche tab(20)
 
 /*ecriture de chacune des personnes*/
 for (i=0, i<NMAX, i++)
  (printf("Nom : /n" );
   gets(tab(i)nom);
   printf("Prenom : /n" );
   gets(tab(i)prenom);
  )  
 
/*Entrée et lecture des informations de recherche*/
  printf("taper 0 pour une recherche par nom/n" );
  printf ("taper 1 pour une recherche par prenom/n" );
  scanf("%d", &n);
  printf(« entrer les informations de recherche ») ;
  gets(recherche()) ;
   
/*Recherche*/
  if(n==1)
   
    (for(i==0, i<NMAX, i++)
     (if(strcmp (recherche, tab(i)nom==0))
        c++;
      else
       printf(«personne (i)) ;
       if(c==NMAX)
        printf(« no result/n ») ;
     )
     
    else
     (for(i==0, i<NMAX, i++)
       (if(strcmp (recherche, tab(i)nom==0))
          c++;
        else
         printf(«personne (i)) ;
         if(c==NMAX)
 
          printf(« no result/n ») )
 
n'hésitez pas à me faire des suggestions..

n°1374957
Trap D
Posté le 25-05-2006 à 16:32:31  profilanswer
 

Tu es sûr que c'est du C ?
Tu as compilé ?

n°1374967
rudy1895
Posté le 25-05-2006 à 16:47:57  profilanswer
 

non j'ai pas compilé.
 
et ouai c'est du C.  
 
d'ailleurs j'ai jamais réussit à compiler, il y a toujours des millions d'erreur. genre une virgule..

n°1374971
zapan666
Tout est relatif
Posté le 25-05-2006 à 16:57:21  profilanswer
 

[:pingouino]


---------------
my flick r - Just Tab it !
n°1374973
kadreg
profil: Utilisateur
Posté le 25-05-2006 à 16:59:18  profilanswer
 

[:roane]


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
n°1374975
rudy1895
Posté le 25-05-2006 à 17:02:01  profilanswer
 

à ce point??

n°1374976
Trap D
Posté le 25-05-2006 à 17:02:34  profilanswer
 

Tu sais qu'en C les talbeaux s'écrivent avec des [] et non pas avec des () comme en VB ?
C'est quoi ça "char recherche tab(20) " pour toi ?

Citation :

amusez vous bien. je sais qu'il y a des vrais bêtes dans le coin, j'ai un peu honte, ça va rire..  

Message cité 1 fois
Message édité par Trap D le 25-05-2006 à 17:03:51
n°1374977
zapan666
Tout est relatif
Posté le 25-05-2006 à 17:03:42  profilanswer
 

Trap D a écrit :

Tu sais qu'en C les talbeaux s'écrivent avec des [] et non pas avec des () comme en VB ?
C'est quoi ça "char recherche tab(20) " pour toi ?


Citation :

je l’ai fait avec seulement 2 informations par personnes. Désolé mais j’ai pas trvouver les accolades sur mon mac, ni le slash du retour chariot. Voici le chef-d’œuvre..


les Crochets doivent en faire parti


---------------
my flick r - Just Tab it !
n°1374980
Clemci
- L homme fou -
Posté le 25-05-2006 à 17:08:28  profilanswer
 

Ouaip enfin ya pas mal d'erreurs qui sont rapides a voir...  :??:  
 
Avis a la populasse : (roulement de tambour !!!  :bounce: )
 
- Comment faire une condition en C
 
if (condition) {
                    instruction 1;
                    }
else (condition) {
                       instruction 2;
                       }
etc....
 
C'est le meme type de structure pour une boucle while, di...while, for ou autres.  :sweat:  
 
Apres c'est sur que si tu chopes pas les accolades tu va te taper des tonnes d erreur !!! Au pire tu fais un copier/coller des notres :lol:  :whistle:  
 
*****************************************************
 
A savoir que ton main est deja écrit de travers :p J'propose un truc comme ca plutot. Mais j peux dire des conneries (dsl pas trouvé de photo de bartez :p )
 
*****************************************************
 
main = int main () {
 
.....
 
return 0
}
 
Voila, corrige les erreurs et renvoie le truc, j regarderais si je repasse... Et trouve les accolades !!!
 
ah oui j'oubliais :
 
google : "accolades mac" -> http://www.metacites.net/article143.html
 
[temps de recherche : 5 sec] avis aux amateurs.
 
Bon courage amigo


Message édité par Clemci le 25-05-2006 à 17:11:42

---------------
Les toles ondulées, les vaches aussi.
n°1374981
Clemci
- L homme fou -
Posté le 25-05-2006 à 17:13:00  profilanswer
 

:D mdr Je@nb comment elle déchire ta signature de messages !!! UP  :love: :sol:
 
Et t'en penses quoi de "playstation" ??? :bounce:


Message édité par Clemci le 25-05-2006 à 17:14:24

---------------
Les toles ondulées, les vaches aussi.
n°1375001
Sve@r
Posté le 25-05-2006 à 18:02:23  profilanswer
 

rudy1895 a écrit :

je l’ai fait avec seulement 2 informations par personnes. Désolé mais j’ai pas trouver les accolades sur mon mac, ni le slash du retour chariot.


Hum... écrire du C sans accolade, ni crochet, ni backslash c'est un peu MI12...

rudy1895 a écrit :

Voici le chef-d’œuvre..
<...>


Pfou... c'est plus du code, c'est de la forêt vierge ton truc...
 
Bon, à nous de nous mettre au turbin...
 

rudy1895 a écrit :

typedef Nmax=1000


typedef sert à créer des types nouveaux à partir de types connus. Tu veux peut-être dire "#define Nmax 1000" => convention: les macro sont en majuscules =>  
#define NMAX 1000
   

rudy1895 a écrit :

personne struct ( char nom tab(15); char prenom tab(20)....)


Un tableau se définit "type identificateur [nb]" => char nom[15]; char prenom[20];
 


int main()

rudy1895 a écrit :

gets(tab(i)nom);


gets(tab[i].nom)
Attention, la fonction "gets" est dangereuse car elle ne fait pas de contrôle de la chaîne entrée => si tu entres 150 caractères, gets() te les stockera vaillemment dans nom qui n'en fait que 15 (dont un réservé pour le '\0') => débordement
Vaut mieux utiliser fgets() à qui on donne la limite à ne pas dépasser
fgets(tab[i].nom, 15, stdin)
 
 

rudy1895 a écrit :

gets(recherche())


Alors là... je suis bluffé. Tu fais saisir une fonction !!!
A moins que "recherche" renvoie une adresse où stocker les octets saisis par "gets", tu vas avoir un belle surprise à l'exécution...
   

rudy1895 a écrit :

for(i==0, i<NMAX, i++)


T'avais raison de dire qu'on allait rire. == est une comparaison. L'affectation se fait par "=" => for (i=0; i < NMAX; i++)
D'habitude on voit souvent le contraire "if (i = 0)" au lieu de "if (i == 0)". C'est la première fois que je vois "for (i==0; ...; ...)"
 

rudy1895 a écrit :

if(strcmp (recherche, tab(i)nom==0))


Pb de parenthèses. Ton but est de comparer ce que te renvoie "strcmp()" avec "0" =>
if (strcmp(recherche, tab[i].nom) == 0)
 

rudy1895 a écrit :

printf(«personne (i)) ;


No comment...
printf("%s", tab[i].nom);
 

rudy1895 a écrit :

n'hésitez pas à me faire des suggestions..


Une erreur par ligne... c'est plus des suggestions qu'il te faut, c'est un miracle...
 

rudy1895 a écrit :

à ce point??


Faut vraiment, mais alors vraiment que tu ouvres un bouquin de C... et à la page "1" puis que tu lises la préface, l'intro et tout le reste. Et t'arrête surtout pas avant d'avoir lu les mots "imprimé le <...> sur les presses de <...>"
 
Déjà, commence par aller voir l'un où l'autre de ces deux liens  

A la réflexion, n'hésite surtout pas à consulter les deux à la fois...


Message édité par Sve@r le 25-05-2006 à 18:50:30

---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
n°1375063
rudy1895
Posté le 25-05-2006 à 20:00:07  profilanswer
 

bon ok j'ouvre mon bouquin,
 
thanks sver..
 
je m'y met. merci pour les liens (ils sont plutot bien). je vous le programme dès qu'il est tout tout beau, comme ça, si quelqu'un est intérréssé par ce programme de recherche de merde..
 
enfin, bref juste une petite question, l'appel d'une structure, comment on fait ça ?
 
par exemple, j'ai entré 3 personnes avec mon
personne struct ( char nom tab[15]; char prenom tab[20])
 
la première personne ça sera : personne(nom[1], prenom[1])  ?
 
pas terrible parce que nom[1] ça appelle le 1st caractère du tableau nom[],
 
alors,
 
personne[1]  ?
 
 
 
 
au fait merci pour les [{}]

n°1375151
Clemci
- L homme fou -
Posté le 25-05-2006 à 22:04:20  profilanswer
 

Ok j te montre pour les strucutres
 
Dabord comme dans tous les programmes en C, il faut que tu la décrive cette struct.
 
Du style :
 
  struct carnetAd{
    char prénom;
    char nom;
    int age;
    int etc...;
  };
 
apres dans ton prog il faut que tu définisses que dans chaques éléments de ta structures tu vux lui faire correspondre des listes ou des tableaux.
 
struct carnetAd nom[nbNom];
 
ou nbNom corresponds au nombre de noms qu il y aura dans ton carnet d adresse.
 
Voila. La j viens de te définir tes structures. Pour info j bosses sur le mm type de programme sauf que moi j ai fini la partie saisie. J rentre dans la partie tri qui est grave corsée.
 
pour ta partie recherche de nom (par exemple) il faut juste que tu lui fasse chercher dans la partie "nom" de ta structure tous les noms qui s'écrivent avec les mm caractéree
 
Pour info : le nom numéro trois de ta structure s'appel "carnetAd.nom[3]"
 
Voila t'as tout
 
apres faut juste que tu lui fasse tester les chaines de caracteres rentrés et la chaine de caractere que tu rechercge...
 
Bon courage amigo

n°1375165
rudy1895
Posté le 25-05-2006 à 22:30:29  profilanswer
 

thanx l'homme fou.  
c'est très clair. j'ai compris. mieux que mon bouquin de 1800 pages..
 
je m'en souviens avoir fait du tri avec les pointeurs et des jeux de cartes, je ne comprenais absolument rien, bah mon vieux bon courage..
 

n°1375203
Emmanuel D​elahaye
C is a sharp tool
Posté le 25-05-2006 à 23:16:51  profilanswer
 

rudy1895 a écrit :

je l’ai fait avec seulement 2 informations par personnes. Désolé mais j’ai pas trvouver les accolades sur mon mac, ni le slash du retour chariot. Voici le chef-d’œuvre..



Compiling: main.c
main.c:3: error: typedef `Nmax' is initialized (use __typeof__ instead)
main.c:4: error: syntax error before "personne"
main.c:4: error: syntax error before "tab"
main.c:10: error: syntax error before "tab"
main.c:15: error: syntax error before '(' token
main.c:16: error: syntax error before string constant
main.c:16: warning: type defaults to `int' in declaration of `printf'
main.c:16: warning: function declaration isn't a prototype
main.c:16: error: conflicting types for 'printf'
main.c:16: note: a parameter list with an ellipsis can't match an empty parameter name list declaration
main.c:16: error: conflicting types for 'printf'
main.c:16: note: a parameter list with an ellipsis can't match an empty parameter name list declaration
main.c:16: warning: data definition has no type or storage class
main.c:17: error: syntax error before '(' token
main.c:22: error: syntax error before string constant
main.c:22: warning: type defaults to `int' in declaration of `printf'
main.c:22: warning: function declaration isn't a prototype
main.c:22: warning: redundant redeclaration of 'printf'
main.c:16: warning: previous declaration of 'printf' was here
main.c:22: warning: data definition has no type or storage class
main.c:23: error: syntax error before string constant
main.c:23: warning: type defaults to `int' in declaration of `scanf'
main.c:23: warning: function declaration isn't a prototype
main.c:23: error: conflicting types for 'scanf'
main.c:23: note: a parameter list with an ellipsis can't match an empty parameter name list declaration
main.c:23: error: conflicting types for 'scanf'
main.c:23: note: a parameter list with an ellipsis can't match an empty parameter name list declaration
main.c:23: warning: data definition has no type or storage class
main.c:24: error: stray '\171' in program
main.c:24: error: syntax error before "les"
main.c:24: error: stray '\187' in program
main.c:24: warning: type defaults to `int' in declaration of `printf'
main.c:24: warning: function declaration isn't a prototype
main.c:24: warning: redundant redeclaration of 'printf'
main.c:22: warning: previous declaration of 'printf' was here
main.c:24: warning: data definition has no type or storage class
main.c:25: error: syntax error before '(' token
main.c:34: error: stray '\171' in program
main.c:36: error: stray '\171' in program
main.c:36: error: stray '\187' in program
main.c:44: error: stray '\171' in program
main.c:47: error: stray '\171' in program
main.c:47: error: stray '\187' in program
Process terminated with status 1 (0 minutes, 0 seconds)
27 errors, 16 warnings


Citation :

n'hésitez pas à me faire des suggestions..

Changer d'orientation ?


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1375218
Sve@r
Posté le 25-05-2006 à 23:29:56  profilanswer
 

Clemci a écrit :

Ok j te montre pour les strucutres


Hum... que voilà de truculentes strucutres...
 

Clemci a écrit :

Dabord comme dans tous les programmes en C, il faut que tu la décrive cette struct.


On dit plutôt "déclarer"...
 

Clemci a écrit :

Du style :
 
  struct carnetAd{
    char prénom;
    char nom;
    int age;
    int etc...;
  };


Hum... et tes noms et prénoms n'ont qu'un seul caractère ?  
- Enchanté, je m'appelle J F
- Oh, ravi. moi c'est G T
!!!
 

Clemci a écrit :

apres dans ton prog il faut que tu définisses que dans chaques éléments de ta structures tu vux lui faire correspondre des listes ou des tableaux.
 
struct carnetAd nom[nbNom];
 
ou nbNom corresponds au nombre de noms qu il y aura dans ton carnet d adresse.
Pour info : le nom numéro trois de ta structure s'appel "carnetAd.nom[3]"


NON !
Déjà en C les indices partent de 0 donc le numéro trois aura l'indice "2"
En plus, "carnetAd" n'existe pas
"struct carnetAd", d'après ton exemple, est un nom de type pas un nom de variable
En l'occurrence, ce sera simplement "nom[2].nom" (super idée que de mettre des noms de variables identiques aux noms de membres !!!)
 
Pas la peine de donner des conseils si c'est pour raconter n'importe quoi...


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
n°1375238
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 25-05-2006 à 23:41:05  profilanswer
 

Clemci a écrit :

Ok j te montre pour les strucutres
 
Dabord comme dans tous les programmes en C, il faut que tu la décrive cette struct.
 
Du style :
 
  struct carnetAd{
    char prénom;
    char nom;
    int age;
    int etc...;
  };
 
apres dans ton prog il faut que tu définisses que dans chaques éléments de ta structures tu vux lui faire correspondre des listes ou des tableaux.
 
struct carnetAd nom[nbNom];
 
ou nbNom corresponds au nombre de noms qu il y aura dans ton carnet d adresse.
 
Voila. La j viens de te définir tes structures. Pour info j bosses sur le mm type de programme sauf que moi j ai fini la partie saisie. J rentre dans la partie tri qui est grave corsée.
 
pour ta partie recherche de nom (par exemple) il faut juste que tu lui fasse chercher dans la partie "nom" de ta structure tous les noms qui s'écrivent avec les mm caractéree
 
Pour info : le nom numéro trois de ta structure s'appel "carnetAd.nom[3]"
 
Voila t'as tout
 
apres faut juste que tu lui fasse tester les chaines de caracteres rentrés et la chaine de caractere que tu rechercge...
 
Bon courage amigo


ok lol [:el g]
merci d'avoir joué, repassez la semaine prochaine [:ohello]


Message édité par Harkonnen le 26-05-2006 à 00:42:33

---------------
J'ai un string dans l'array (Paris Hilton)
n°1375309
weed
Posté le 26-05-2006 à 02:11:47  profilanswer
 

il y a un truc que je saisis pas, tu utilises les structures alors que tu sais a peine de faire du C, la syntaxe du if, du while, les tableaux

n°1375310
Sve@r
Posté le 26-05-2006 à 02:15:31  profilanswer
 

weed a écrit :

il y a un truc que je saisis pas, tu utilises les structures alors que tu sais a peine de faire du C, la syntaxe du if, du while, les tableaux


Vi, c'est la nouvelle méthode. On te donne des bouts de C tout fait et tu les apprends par coeur. Comme les enfants qui apprennent à lire par syllabes au lieu d'apprendre à associer les lettres. Il y a plus de trucs à savoir donc t'as l'impression d'être plus calé que la génération précédente... :lol:


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
n°1384205
rudy1895
Posté le 09-06-2006 à 05:24:13  profilanswer
 

voici enfin le programme. merci à tous pour votre aide.
 
toujours un petit problème cependant, je peux l'executer mais à l'entrée des paramètres de recherche après avoir appuyer sur "enter" je me retrouve sur la page de mon programme..
 
si qqn pouvait m'aider, ça serait sympa à vous.
 
 
 
 
 
#include <stdio.h>
#include <string.h>
#define NMAX 10
#define NMAX 100
 struct personne{
  char nom[15];
  char prenom[20];
  char lieunaissance[20];
  char datenaissance[15];
  char numeropasseport[15];
  char lieudelivrance[20];
  char datedelivrance[15];};
 
 
 
int main()
{int n, c, i;
 struct personne bank[NMAX];
 char recherche[20];
 char tmp[1];
/*entrée des personnes et remplissage du tableau de structures « bank »*/
 for (i=0; i<NMAX; i++)
 {printf("Nom:\n" );
  fgets(bank[i].nom, 15, stdin);
  printf("Prenom:\n" );
  fgets(bank[i].prenom, 20, stdin);
  printf("Lieu de naissance:\n" );
  fgets(bank[i].lieunaissance, 15, stdin);
  printf("Date de naissance:\n" );
  fgets(bank[i].datenaissance, 20, stdin);
  printf("Numero de passeport:\n" );
 
page 1.
  fgets(bank[i].numeropasseport, 15, stdin);
  printf("Lieu de delivrance:\n" );
  fgets(bank[i].lieudelivrance, 20, stdin);
  printf("Date de delivrance:\n" );
  fgets(bank[i].datedelivrance, 15, stdin);
  }
 /*fin de l'entree des personnes"*/
 printf("Taper 1 pour lancer une recherche par nom.\n" );
 printf("Taper 2 pour lancer une recherche par prenom.\n" );
 printf("Taper 3 pour lancer une recherche par lieu de naissance.\n" );
 printf("Taper 4 pour lancer une recherche par date de naissance.\n" );
 printf("Taper 5 pour lancer une recherche par num‚ro de passeport.\n" );
 printf("Taper 6 pour lancer une recherche par lieu de delivrance.\n" );
 printf("Taper 7 pour lancer une recherche par date de delivrance.\n" );
 
 scanf("%d",&n);
 printf("Rentrer les elements de la recherche.\n" );
 gets(recherche);
 
 /*debut de la recherche*/
 if (n==1)
 {for (i=0; i<NMAX; i++)
   {c=0;
/*comparaison et impression si succées */
    if(strcmp(recherche, bank[i].nom)==0)
     {printf("%s", bank[i].prenom);
      printf("%s", bank[i].nom);
      printf("%s", bank[i].lieunaissance);
      printf("%s", bank[i].datenaissance);
      printf("%s", bank[i].numeropasseport);
      printf("%s", bank[i].lieudelivrance);
      printf("%s", bank[i].datedelivrance);
      c++;
     }
    if (c==0)
     printf("no result\n" );
   }
 }
 
 
 
 
page 2.
  else if(n==2)
  {for (i=0; i<NMAX; i++)
   {c=0;
    if(strcmp(recherche, bank[i].prenom)==0)
     {printf("%s", bank[i].prenom);
      printf("%s", bank[i].nom);
      printf("%s", bank[i].lieunaissance);
      printf("%s", bank[i].datenaissance);
      printf("%s", bank[i].numeropasseport);
      printf("%s", bank[i].lieudelivrance);
      printf("%s", bank[i].datedelivrance);
      c++;
     }
    if (c==0)
     printf("no result\n" );
   }
  }
 
     else if(n==3)
  {for (i=0; i<NMAX; i++)
   {c=0;
    if(strcmp(recherche, bank[i].lieunaissance)==0)
     {printf("%s", bank[i].prenom);
      printf("%s", bank[i].nom);
      printf("%s", bank[i].lieunaissance);
      printf("%s", bank[i].datenaissance);
      printf("%s", bank[i].numeropasseport);
      printf("%s", bank[i].lieudelivrance);
      printf("%s", bank[i].datedelivrance);
      c++;
     }
    if (c==0)
     printf("no result\n" );
   }
  }
 
 
        else if(n==4)
  {for (i=0; i<NMAX; i++)
   {c=0;
 
 
page 3.
    if(strcmp(recherche, bank[i].datenaissance)==0)
     {printf("%s", bank[i].prenom);
      printf("%s", bank[i].nom);
      printf("%s", bank[i].lieunaissance);
      printf("%s", bank[i].datenaissance);
      printf("%s", bank[i].numeropasseport);
      printf("%s", bank[i].lieudelivrance);
      printf("%s", bank[i].datedelivrance);
      c++;
     }
    if (c==0)
     printf("no result\n" );
   }
  }
 
 
 
           else if(n==5)
  {for (i=0; i<NMAX; i++)
   {c=0;
    if(strcmp(recherche, bank[i].numeropasseport)==0)
     {printf("%s", bank[i].prenom);
      printf("%s", bank[i].nom);
      printf("%s", bank[i].lieunaissance);
      printf("%s", bank[i].datenaissance);
      printf("%s", bank[i].numeropasseport);
      printf("%s", bank[i].lieudelivrance);
      printf("%s", bank[i].datedelivrance);
      c++;
     }
    if (c==0)
     printf("no result\n" );
   }
  }
 
 
 
 
 
 
 
 
page 4.
                else if(n==6)
  {for (i=0; i<NMAX; i++)
   {c=0;
    if(strcmp(recherche, bank[i].lieudelivrance)==0)
     {printf("%s", bank[i].prenom);
      printf("%s", bank[i].nom);
      printf("%s", bank[i].lieunaissance);
      printf("%s", bank[i].datenaissance);
      printf("%s", bank[i].numeropasseport);
      printf("%s", bank[i].lieudelivrance);
      printf("%s", bank[i].datedelivrance);
      c++;
     }
    if (c==0)
     printf("no result\n" );
   }
  }
 
                     
                else if(n==7)
  {for (i=0; i<NMAX; i++)
   {c=0;
    if(strcmp(recherche, bank[i].datedelivrance)==0)
     {printf("%S", bank[i].prenom);
      printf("%S", bank[i].nom);
      printf("%s", bank[i].lieunaissance);
      printf("%s", bank[i].datenaissance);
      printf("%s", bank[i].numeropasseport);
      printf("%s", bank[i].lieudelivrance);
      printf("%s", bank[i].datedelivrance);
      c++;
     }
    if (c==0)
     printf("no result\n" );
   }
  }
 
 /*fin de la recherche*/
 fclose (sortie);
 return 0;
}
 
page 5.

n°1384219
Emmanuel D​elahaye
C is a sharp tool
Posté le 09-06-2006 à 08:41:25  profilanswer
 

rudy1895 a écrit :

voici enfin le programme. merci à tous pour votre aide.
 
toujours un petit problème cependant, je peux l'executer mais à l'entrée des paramètres de recherche après avoir appuyer sur "enter" je me retrouve sur la page de mon programme..
 
 
#include <stdio.h>


Merci d'utiliser la balise code : http://forum-images.hardware.fr/icones/message/c.gif
 
Pour le reste
- Ne pas utiliser gets(). C'est un bug.
- C'est bien d'utiliser fgets(), mais il faut nettoyer (supprimmer proprement le \n). Pour ça, je recommande :  

Code :
  1. printf("Nom:\n" );
  2.       fgets(bank[i].nom, 15, stdin);
  3.       clean(bank[i].nom, stdin);


avec :  

Code :
  1. static void purge (FILE * fp)
  2. {
  3.    int c;
  4.    while ((c = fgetc (fp)) != '\n' && c != EOF)
  5.    {
  6.    }
  7. }
  8. static void clean (char *s, FILE * fp)
  9. {
  10.    /* search ... */
  11.    char *p = strchr (s, '\n');  /* <string.h> */
  12.    if (p != NULL)
  13.    {
  14.       /* ... and kill */
  15.       *p = 0;
  16.    }
  17.    else
  18.    {
  19.       purge (fp);
  20.    }
  21. }


D'autre part, tu devrais apprendre à écrire des fonctions et à utiliser switch-case...
Le fclose() de la fin ne correspond à rien...
 
Enfin, pour un code de test (validation d'un principe) , on a pas besoin de mettre autant de champs. Pour saisir 10 noms, il faut plusieurs minutes. Ou alors fait une lecture à partir d'un fichier texte que l'on peut facilement écrire avec un éditeur. Le plus simple : Un champ par ligne, un nombre de lignes fixe par enregistrement.
Par exemple :  


Jules
Cesar
Rome
C avant JC
CXIV
Rome
XX-X-XL
Jacques
Chirac
Paris
29-11-1932
123456789
Paris
01-10-2002


Message édité par Emmanuel Delahaye le 09-06-2006 à 08:48:10

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1384246
_darkalt3_
Proctopathe
Posté le 09-06-2006 à 09:34:29  profilanswer
 

utilises un debugger, lis les docs de chaque fonction que tu utilises, test les entrées et les sorties. Là tu pourra cerner ton erreur.

n°1384252
rudy1895
Posté le 09-06-2006 à 09:39:10  profilanswer
 

merci les gars. je vais faire tout ça.
 
et ouai je vais peut être mettre des fonctions ça m'eviteras de tout répéter 20 fois.

n°1384461
Sve@r
Posté le 09-06-2006 à 13:47:19  profilanswer
 

rudy1895 a écrit :

et ouai je vais peut être mettre des fonctions ça m'eviteras de tout répéter 20 fois.


ouais, c'est peut-être une solution qu'il conviendrait d'envisager [:ddr555]


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
n°1385059
cocaraicha
Aider, c’est pas sorcier
Posté le 10-06-2006 à 12:47:29  profilanswer
 

Sve@r a écrit :

ouais, c'est peut-être une solution qu'il conviendrait d'envisager [:ddr555]


 
C'est meme indispensable  :o  

n°1387815
el muchach​o
Comfortably Numb
Posté le 14-06-2006 à 22:39:25  profilanswer
 

Oh putain, je viens de voir ce sujet d'anthologie. [:rofl]
Ma prog en C sans accolades, c'est un concept à creuser...


---------------
Les aéroports où il fait bon attendre, voila un topic qu'il est bien
n°1387865
Zipo
Ours bipolaire
Posté le 15-06-2006 à 01:38:22  profilanswer
 

j'aime bien ca :
 

Code :
  1. c=0;
  2. if(strcmp(recherche, bank[i].datedelivrance)==0){
  3. // blabla  
  4.        c++;
  5. }
  6. if (c==0)
  7.      printf("no result\n" );


 
on lui apprend le else ? :o :D

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  Devoir programmation en C.

 

Sujets relatifs
programmation othello[MFC] Passer maître en programmation multi-thread
Programmation PHPProgrammation de formulaires
[Résolu] Problème Programmation MFC[Programmation en C sur Microcontroleur]
Programmation d'un Radio Web[C++] programmation multilangues - variables externe
Aide : Quel est plus simple langague de programmation .Programmation ipod
Plus de sujets relatifs à : Devoir programmation en C.


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR