Probleme simple ?

Probleme simple ? - C - Programmation

Marsh Posté le 06-03-2007 à 15:08:09    

Salut tout le monde.
 
Voila je suis face a un pb que je pense tres simple a résoudre mais j en peux plus la.
J'explique, je suis en train de faire un prog ou je dois entrer des valeurs, faire un tri, puis les afficher. Pour me mettre dans le bain du prog, j ai juste fait les sous programmes saisie et affichage. Le tri je le ferai quand ces deux le marcheront. Pk bien sur ils ne marchent pas et pourtant...
 
En fait, dans mon main, lorsque je compile, il me dit "expected primary-expression before ']' token"
 
j vous envoie mon code source. Merci d'avance
 
 

Citation :


#include <stdio.h>
 
 
  void saisie (int n,int t[]) {
 
  printf("Entrez le nombre de d'elements à trier :" );
  scanf ("%d",&n);
 
 printf ("\nEntres les elements à trier :\n" );
 
  for (i=0;i<n;i++){
    scanf ("%d", &t[i]);
  }
  }
 
 
  void affichage (int t[]) {
 
printf ("\nElements non tries :\n" );
 
 for (j=1;j<n+1;j++){
   printf(" _____" );
 }
 
 printf("\n" );
 printf ("|" );
 
 for (i=0;i<n;i++){
   printf ("%5d|",t[i]);
 }
 
 printf("\n" );
 
 for (j=1;j<n+1;j++){
   printf(" _____" );
 }
 printf("\n" );
  }
 
 
int main () {
  int i;
  int j;
  int n;
  int t[n];
  saisie (n,t[]);
  affichage (t[]);
 
system pause;
 
}


---------------
Les toles ondulées, les vaches aussi.
Reply

Marsh Posté le 06-03-2007 à 15:08:09   

Reply

Marsh Posté le 06-03-2007 à 15:14:26    

Code :
  1. saisie (n,t);
  2. affichage (t);


Message édité par _darkalt3_ le 06-03-2007 à 15:14:40

---------------
Töp of the plöp
Reply

Marsh Posté le 06-03-2007 à 15:14:30    

Il dit un peu plus que ça :

taiste.c: In function `saisie':
taiste.c:11: error: `i' undeclared (first use in this function)
taiste.c:11: error: (Each undeclared identifier is reported only once
taiste.c:11: error: for each function it appears in.)
taiste.c: In function `affichage':
taiste.c:21: error: `j' undeclared (first use in this function)
taiste.c:21: error: `n' undeclared (first use in this function)
taiste.c:28: error: `i' undeclared (first use in this function)
taiste.c: In function `main':
taiste.c:46: error: parse error before ']' token
taiste.c:47: error: parse error before ']' token
taiste.c:42: warning: unused variable `i'
taiste.c:43: warning: unused variable `j'


 
Tu dois revoir les notions de scope, de pointeurs, etc.

Reply

Marsh Posté le 06-03-2007 à 15:15:37    

(ouvre un bouquin de C au passage, c'est le genre de truc utiles dans lesquels on trouve ce genre d'informations)


---------------
Töp of the plöp
Reply

Marsh Posté le 06-03-2007 à 15:18:57    

C'est cool j'ai résolu le pb... Merci en tous cas !!!
 

Citation :


int main () {
  int i;
  int n;
 
  printf("Entrez le nombre de d'éléments du tableau :" );
  scanf ("%d",&n);
 
  int t[n];
   
  saisie (n,t);
  affichage (n,t);
 
system ("pause" );
 
}


 
C'est ca que de ne pas aller en cour  :sarcastic:  
 
Ya des chances que je reviennen vous poser des questions "probleme simple ?" huhu :D

Message cité 1 fois
Message édité par Clemci le 06-03-2007 à 17:10:27

---------------
Les toles ondulées, les vaches aussi.
Reply

Marsh Posté le 06-03-2007 à 15:24:54    

Tu ouvriras un livre avant alors.


---------------
Töp of the plöp
Reply

Marsh Posté le 06-03-2007 à 15:27:08    

_darkalt3_ a écrit :

Tu ouvriras un livre avant alors.


 
oui merci du conseil !!!  :kaola:

Reply

Marsh Posté le 06-03-2007 à 16:56:47    

Clemci a écrit :

C'est cool j'ai résolu le pb... Merci en tous cas !!!


 
Lequel ?
Non parce que dixit mon compilateur, y en avait pas qu'un [:o_doc]
 

Reply

Marsh Posté le 06-03-2007 à 17:15:41    

C'est vrai... C'était des probleme d'appel de sous fonction qui me faisait planter mon prog entier.
 
La j suis rebloquer pour le meme genre de pb avec un appel de fonction avec pointeurs. La galere !!!
 
Tiens j't'envoie le prog que j'ai tapé... En espérant que _darkalt3_ me propose d'ouvrir un bouquin comme tres bonne solution... ;)
 
Ah oui, j'ai rajouter les sous prog de tris !!! Te prends pas la tete non plus a ma place... Demain j'en parlerai avec mes profs !!!
 
Merci !!!
 

Citation :


#include <stdio.h>
 
void saisie (int n,int t[]) {
 
  int i;
 
  printf ("\nEntres les elements a trier :\n" );
 
  for (i=0;i<n;i++){
      scanf ("%d", &t[i]);
      }
}
 
 
void affichage (int n,int t[]) {
 
  int j,i;
 
  for (j=1;j<n+1;j++){
      printf(" _____" );
      }
 
  printf("\n" );
  printf ("|" );
 
  for (i=0;i<n;i++){
      printf ("%5d|",t[i]);
      }
 
  printf("\n" );
 
  for (j=1;j<n+1;j++){
      printf(" _____" );
      }
  printf("\n" );
}
 
 
int indiceduMin (int t[],int n,int debut) {
 
  int imin=debut,i;
   
  for (i=debut;i<n;i++) {
      if (t[i]<t[imin]) {
          imin =i;
         }
      }
return imin;
}
 
 
void Echange (int *a,int *b) {
     
  int c;
     
    c=*a;
    *a=*b;
    *b=c;
}
 
 
void Tri (int n, int t[]) {
 
  int k,i;
  for(i=0;i<n-1;i++) {
      k=IndiceduMin (t,i,n);
      if (k!=i) {echange (&t[i],&t[k]);
         }
      }
}
 
int main () {
 
  int i,n,debut,a,b;
 
    printf("Entrez le nombre de d'elements a trier :" );
  scanf ("%d",&n);
 
  int t[n];
   
  saisie (n,t);
 
    printf ("\nElements non tries :\n" );
 
  affichage (n,t);
  IndiceduMin (n,t,debut);
  Echange (*a,*b);
  Tri (n,t);
     
    printf ("\nElements tries :\n" );
 
  affichage (n,t);
 
system ("pause" );
 
}

Message cité 1 fois
Message édité par Clemci le 06-03-2007 à 17:16:36

---------------
Les toles ondulées, les vaches aussi.
Reply

Marsh Posté le 06-03-2007 à 17:20:36    

Clemci a écrit :

Tiens j't'envoie le prog que j'ai tapé... En espérant que _darkalt3_ me propose d'ouvrir un bouquin comme tres bonne solution... ;)


 
C'est pourtant un conseil très avisé, et je te le soumets aussi. C'est d'ailleurs le seul conseil qui vienne à l'esprit quand on lit ton code.
 
Un excellent livre : "Le Langage C" de Kernighan & Ritchie (affectueusement surnommé "le K&R" ).
 

Reply

Marsh Posté le 06-03-2007 à 17:20:36   

Reply

Marsh Posté le 06-03-2007 à 17:24:54    

Oaui enfin c'est pas que je ne veux pas lire ton bouquin mais si c'est pour passer 15h a le lire...
 
J'pensais que les forums étaient fait pour proposer des solutions a des problemes et pas pour répondre a un pb par un autre.
 
Enfin bref j te remerci j vais me démerder...
 
PS : je tiens quand meme a préciser que le programme je l'ai chier tout seul et qu il me donne que 3 erreurs de compilations sur un truc que je ne SAIS pas faire. Les profs sont la pour ca, je leur demanderai demain.

Reply

Marsh Posté le 06-03-2007 à 17:30:04    

Clemci a écrit :

Oaui enfin c'est pas que je ne veux pas lire ton bouquin mais si c'est pour passer 15h a le lire...


 
En même temps, si c'est ce que tu étudies, 15h c'est rien du tout.
 

Clemci a écrit :

J'pensais que les forums étaient fait pour proposer des solutions a des problemes et pas pour répondre a un pb par un autre.


 
C'est tout à fait le cas. Et la solution proposée est adaptée : il est évident qu'il y a beaucoup de notions qui te sont inconnues, et tu seras très vite confronté à d'insurmontables problèmes si tu ne te documentes pas davantage.
La programmation, c'est pas seulement pisser du code, c'est énormément de temps passé dans les docs...
 
 

Clemci a écrit :

PS : je tiens quand meme a préciser que le programme je l'ai chier tout seul et qu il me donne que 3 erreurs de compilations sur un truc que je ne SAIS pas faire. Les profs sont la pour ca, je leur demanderai demain.


 
Mouais :


taiste.c: In function `Tri':
taiste.c:66: warning: implicit declaration of function `IndiceduMin'
taiste.c:67: warning: implicit declaration of function `echange'
taiste.c: In function `main':
taiste.c:87: error: invalid type argument of `unary *'
taiste.c:87: error: invalid type argument of `unary *'
taiste.c:74: warning: unused variable `i'


 
Et les erreurs à la compilation ne sont pas tout. Un programme qui compile n'est pas un programme qui fonctionne.
Quant aux professeurs, ils sont là pour t'aiguiller, pas pour tout te servir sur un plateau. D'ailleurs ce qu'enseignent les professeurs en informatique est souvent à revoir.

Reply

Marsh Posté le 06-03-2007 à 17:38:07    

On est bien d'accord.
 
Juste que la mon code je l'ai sortit ce matin et que la j commence a en avoir raz la marmitte de réparer une erreur pour en trouver une autre.
 
Ce qui prouve bien que j'ai plongé un minimum ma tete dans des bouquin voir meme sur des cours de C sur le net pour en arrivé la. Maintenant l'enthousiame du gars qui a envie de terminer son prgramme ce soir ce fait sentir et j'vous demandais de l'aide... Si vous ne voulez pas m'en donner je ne vois pas pourquoi vous vous obstinez a me répondre.
 
En bon entendeur, salut. J'irai voir ailleur !

Reply

Marsh Posté le 06-03-2007 à 17:40:21    

J'espere sincérement que si un jour vous avez besoin d'aide et que vous avez deja passé quelques heures sur votre probleme a essayé de le résoudre que vous ne serez pas laissé en plan.
 
Ce qui a toujorus été le cas jusqu'à maintenant depuis que je poste sur ce forum.

Reply

Marsh Posté le 06-03-2007 à 17:40:38    

Clemci a écrit :

Juste que la mon code je l'ai sortit ce matin et que la j commence a en avoir raz la marmitte de réparer une erreur pour en trouver une autre.

 

C'est parce qu'il te manque beaucoup de notions et t'expliquer reviendrait à te faire un cours complet. D'où le conseil d'acheter un livre. Tu peux aussi consulter des cours en ligne, tu peux par exemple commencer à pécher des informations sur ce site : http://mapage.noos.fr/emdel

 

Et si tu es trop borné pour comprendre que le conseil d'acheter un livre n'est pas ironique et que c'est un bon conseil, alors c'est que tu es tout nouveau dans le monde des études supérieures ou de celui du travail.

 
Clemci a écrit :

J'espere sincérement que si un jour vous avez besoin d'aide et que vous avez deja passé quelques heures sur votre probleme a essayé de le résoudre que vous ne serez pas laissé en plan.

 

Tu as pourtant reçu la réponse à ta question, non ? _darkalt3_ te l'a donné dans sa première réponse !

 


Message édité par Elmoricq le 06-03-2007 à 17:44:21
Reply

Marsh Posté le 06-03-2007 à 17:49:28    

Clemci a écrit :

J'espere sincérement que si un jour vous avez besoin d'aide et que vous avez deja passé quelques heures sur votre probleme a essayé de le résoudre que vous ne serez pas laissé en plan.
 
Ce qui a toujorus été le cas jusqu'à maintenant depuis que je poste sur ce forum.


 
99% des solutions se trouvent dans la doc/bouquin.
Maintenant, ca a toujours été plus facile de demander de l'aide que d'essayer de s'en sortir tout seul.
Si les réponses d'ici ne te satisfont pas, t'as pas compris qu'on apprends plutôt aux gens à pêcher que leur donner du poisson pour un repas.


---------------
Töp of the plöp
Reply

Marsh Posté le 06-03-2007 à 17:57:52    

Non mais la c'est pas le pb. Premierement je n'ai pas de bouquin sous la main et deuxiement j espere que t auras bien compris que j ai passé mon aprem a rechercher des infos sur le net en vain.
 
J'vais regarder sur ton site mais si c'est pour reraper un cours entier sur les pointeurs et pour ne pas trouver mon bonheur tu comprendras que je serais... comment dire...blasé !

Reply

Marsh Posté le 06-03-2007 à 17:59:25    

Clemci a écrit :

Non mais la c'est pas le pb. Premierement je n'ai pas de bouquin sous la main et deuxiement j espere que t auras bien compris que j ai passé mon aprem a rechercher des infos sur le net en vain.


Bah attend toi parfois à bloquer plusieurs jours sur le même probleme ... une aprem c'est pas grand chose.


---------------
Töp of the plöp
Reply

Marsh Posté le 06-03-2007 à 18:05:55    

mais ca me blaaaaaaaaaaaaase :(
 
J'exposerai mon probleme au porf demain !!! Et j irai choppé des bouquins a la BU. Mais j'ai bien peur de tombé sur de lourd et que je m'embrouille plus qu'autre chose.
 
Perso j'trouve ca naze d'avoir des cours si on a pas nos réponses dedans. Mais c'est encore un autre pb.
 
J'posterai ma version modifiée des que j'aurai trouver mes erreurs.


Message édité par Clemci le 06-03-2007 à 18:06:39
Reply

Marsh Posté le 06-03-2007 à 18:07:07    

Non seulement ça, mais il faut bien voir qu'en pleine phase d'apprentissage, le temps de résolution des problèmes est encore plus augmenté. C'est normal.

 
Clemci a écrit :

mais ca me blaaaaaaaaaaaaase :(

 

J'exposerai mon probleme au porf demain !!! Et j irai choppé des bouquins a la BU. Mais j'ai bien peur de tombé sur de lourd et que je m'embrouille plus qu'autre chose.

 

Ben si tu as d'autres questions tu peux les poser ici. Mais sache que tu recevras des réponses plus détaillées avec une question du type "j'ai lu que scanf() était déconseillé aux débutants, pourquoi ?" qu'avec un code écrit à l'arrache sur lequel tu demandes un avis.


Message édité par Elmoricq le 06-03-2007 à 18:09:44
Reply

Marsh Posté le 06-03-2007 à 18:09:02    

Je sais j'fais partit de la nouvelle génération de jeunes qui n'acceptent pas l'échec...
 
Enfin au passage si qq un a envie de me faire un ptit topo sur les appels de sous fonctions avec pointeurs je suis preneur ;)

Reply

Marsh Posté le 06-03-2007 à 18:12:09    

Clemci a écrit :

Enfin au passage si qq un a envie de me faire un ptit topo sur les appels de sous fonctions avec pointeurs je suis preneur ;)

 

Ca dépend de ce que tu entends par là.
Mais tu peux trouver un début de réponse (c'est très court à lire) ici :
http://mapage.noos.fr/emdel/notes.htm#pointeurs (tu peux passer le passage sur les pointeurs de fonctions pour l'instant)
et là :
http://mapage.noos.fr/emdel/notes. [...] e_variable


Message édité par Elmoricq le 06-03-2007 à 18:16:37
Reply

Marsh Posté le 06-03-2007 à 18:12:10    

Au final j pense que t'as surement raison. J'me suis emporter. dsl
 
Le pb c'est que tres souvent quand je poste sur des forum sur le net je recois ce genre de réponse soit disant que les gens ne sont pas la pour faire le travail a notre place mais voir améliorer le travail.
 
Le truc c'est que la le travail je l'ai fait, je cherche juste une réponse a ce pb. A savoir que les profs si on leur pose ce type de pb ils nous corrigerons notre prog sans forcément donner d'explications. Alors que je sais que sur les forum bien souvent on a les deux.

Reply

Marsh Posté le 06-03-2007 à 18:19:12    

Clemci a écrit :

Le pb c'est que tres souvent quand je poste sur des forum sur le net je recois ce genre de réponse soit disant que les gens ne sont pas la pour faire le travail a notre place mais voir améliorer le travail.

 

C'est la réponse qu'on donne aux gens qui demandent qu'on leur fasse leur travail, tu remarqueras que tu ne l'as pas reçue sur ce sujet. [:dawao]

 
Clemci a écrit :

Le truc c'est que la le travail je l'ai fait, je cherche juste une réponse a ce pb.

 

Et tu l'as eue, dès la première réponse. ;)


Message édité par Elmoricq le 06-03-2007 à 18:19:46
Reply

Marsh Posté le 06-03-2007 à 18:23:13    

Petit saloupiot va !!! Ca m'énerve je tourne autour de cette p***** de solution...
 
J vais trouver et je le ferai rien que pour vous embeter !!! mdr

Reply

Marsh Posté le 07-03-2007 à 00:20:55    

Clemci a écrit :


j vous envoie mon code source.



Project   : Forums
Compiler  : GNU GCC Compiler (called directly)
Directory : C:\dev\forums2\
--------------------------------------------------------------------------------
Switching to target: default
Compiling: main.c
main.c: In function `saisie':
main.c:12: error: `i' undeclared (first use in this function)
main.c:12: error: (Each undeclared identifier is reported only once
main.c:12: error: for each function it appears in.)
main.c: In function `affichage':
main.c:22: error: `j' undeclared (first use in this function)
main.c:22: error: `n' undeclared (first use in this function)
main.c:29: error: `i' undeclared (first use in this function)
main.c: At top level:
main.c:42: warning: function declaration isn't a prototype
main.c: In function `main':
main.c:47: error: syntax error before ']' token
main.c:48: error: syntax error before ']' token
main.c:50: error: `system' undeclared (first use in this function)
main.c:43: warning: unused variable `i'
main.c:44: warning: unused variable `j'
Process terminated with status 1 (0 minutes, 4 seconds)
9 errors, 3 warnings


 [:arrakys]
Une fois corrigé ça marche


Entrez le nombre d'elements a trier :4

 

Entres les elements a trier :
6
3
8
1

 

Elements non tries :
 _____ _____ _____ _____
|    6|    3|    8|    1|
 _____ _____ _____ _____

 

Press ENTER to continue.


Message édité par Emmanuel Delahaye le 07-03-2007 à 00:37:01

---------------
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/
Reply

Marsh Posté le 07-03-2007 à 12:09:53    

Ouai enfin ya l air d'avoir un souci non ??? Pk le tableau n'est pas trié !!!
 
Bon j regarde ca cette aprem...
 
Merci

Reply

Marsh Posté le 07-03-2007 à 12:23:54    

Clemci a écrit :

Ouai enfin ya l air d'avoir un souci non ??? Pk le tableau n'est pas trié !!!


J'ai juste corrigé le code pour qu'il soit compilable, je ne l'ai pas complété. Pour trier : qsort().


---------------
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/
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed