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

  FORUM HardWare.fr
  Programmation
  C

  Probleme Urgent C tableau a deux dimensions

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Probleme Urgent C tableau a deux dimensions

n°1490514
kojiroperc​he
Posté le 12-12-2006 à 17:34:17  profilanswer
 

Mon probleme consiste a renvoyer un tableau a deux dimensions creer dans mon main  dans cette fonction je veux rajouter des valeurs puis que les valeurs soit sauvegardées dans le tableau est que le tableau soit réutiliser dans le main.
voiçi un exemple de programme qui est plus explicit que mon charabia maladroit çi dessus.
#include <stdio.h>
#include <stdlib.h>
 
int num_perso_ordi(int *tab_ordi)//apelle du tableau définie précedemment dans le main
 
{
 
 tab_ordi[0][0]=1;
 tab_ordi[1][0]=2;
 tab_ordi[2][0]=3;
 tab_ordi[3][0]=4;
 tab_ordi[4][0]=5;
 printf("\n.... %ld ",tab_ordi[0][0]);//affichage des differentes valeur du tableau
 printf("\n %ld ",tab_ordi[1][0]);
 printf("\n %ld ",tab_ordi[2][0]);
 printf("\n %ld.... ",tab_ordi[3][0]);
}
 
 
int main()
{
 int tab_ordi[5][5];//déclaration du tableau a 2 dimensions
 num_perso_ordi(tab_ordi);//utilisation de la fonction num_perso
 printf("\n.... %ld ",tab_ordi[0][0]);//affichage des valeurs ajouté dans la fonctions main pour controle
 printf("\n %ld ",tab_ordi[1][0]);
 printf("\n %ld ",tab_ordi[2][0]);
 printf("\n %ld.... ",tab_ordi[3][0]);
 
}
Ayant cherché plus de 2 heures je suis légérement desespéré donc si vous pouviez corriger ma syntaxe et m'expliquer en uqoi consister mon erreur je vous en serait reconnaisant

mood
Publicité
Posté le 12-12-2006 à 17:34:17  profilanswer
 

n°1490516
Chaos Inte​stinal
Posté le 12-12-2006 à 17:39:01  profilanswer
 

1] Utilise la balise [code] pour présenter ton code
2] Qu'est-ce qui ne fonctionne pas ?
3] Y'a un message ?
4] Tu compiles comment, avec quoi ?

n°1490525
Elmoricq
Modérateur
Posté le 12-12-2006 à 17:43:30  profilanswer
 

Chaos Intestinal a écrit :


4] Tu compiles comment, avec quoi ?

 

Bonne question [:dawa]

$ gcc -W -Wall -pedantic  test.c
test.c:4:34: warning: C++ style comments are not allowed in ISO C90
test.c:4:34: warning: (this will be reported only once per input file)
test.c: In function `num_perso_ordi':
test.c:8: error: subscripted value is neither array nor pointer
test.c:9: error: subscripted value is neither array nor pointer
test.c:10: error: subscripted value is neither array nor pointer
test.c:11: error: subscripted value is neither array nor pointer
test.c:12: error: subscripted value is neither array nor pointer
test.c:13: error: subscripted value is neither array nor pointer
test.c:14: error: subscripted value is neither array nor pointer
test.c:15: error: subscripted value is neither array nor pointer
test.c:16: error: subscripted value is neither array nor pointer
test.c: In function `main':
test.c:23: warning: passing arg 1 of `num_perso_ordi' from incompatible pointer type
test.c:24: warning: long int format, int arg (arg 2)
test.c:25: warning: long int format, int arg (arg 2)
test.c:26: warning: long int format, int arg (arg 2)
test.c:27: warning: long int format, int arg (arg 2)

 


edit : j'expliquerais bien ce qui va pas, mais faudrait un cours complet sur les pointeurs, et j'ai la flemme [:ken masters]
zieute ici : http://mapage.noos.fr/emdel et zone le site, ça devrait t'aider


Message édité par Elmoricq le 12-12-2006 à 17:51:18
n°1490582
jesus_chri​st
votre nouveau dieu
Posté le 12-12-2006 à 18:58:58  profilanswer
 

Code :
  1. int num_perso_ordi(int tab_ordi[][5])


 
voila déjà la bonne déclaration de ta fonction

n°1490759
nORKy
Grmmph...
Posté le 13-12-2006 à 10:50:30  profilanswer
 

Et pourquoi c'est urgent ?

n°1490764
Elmoricq
Modérateur
Posté le 13-12-2006 à 10:57:11  profilanswer
 

Parce qu'il devait rendre son TD hier ? [:opus dei]

n°1491083
Sve@r
Posté le 13-12-2006 à 23:53:54  profilanswer
 

kojiroperche a écrit :

Mon probleme consiste a renvoyer un tableau a deux dimensions creer dans mon main  dans cette fonction je veux rajouter des valeurs puis que les valeurs soit sauvegardées dans le tableau est que le tableau soit réutiliser dans le main.
voiçi un exemple de programme qui est plus explicit que mon charabia maladroit çi dessus.
#include <stdio.h>
#include <stdlib.h>
 
int num_perso_ordi(int *tab_ordi)//apelle du tableau définie précedemment dans le main
 
{
 
 tab_ordi[0][0]=1;
 tab_ordi[1][0]=2;
 tab_ordi[2][0]=3;
 tab_ordi[3][0]=4;
 tab_ordi[4][0]=5;
 printf("\n.... %ld ",tab_ordi[0][0]);//affichage des differentes valeur du tableau
 printf("\n %ld ",tab_ordi[1][0]);
 printf("\n %ld ",tab_ordi[2][0]);
 printf("\n %ld.... ",tab_ordi[3][0]);
}
 
 
int main()
{
 int tab_ordi[5][5];//déclaration du tableau a 2 dimensions
 num_perso_ordi(tab_ordi);//utilisation de la fonction num_perso
 printf("\n.... %ld ",tab_ordi[0][0]);//affichage des valeurs ajouté dans la fonctions main pour controle
 printf("\n %ld ",tab_ordi[1][0]);
 printf("\n %ld ",tab_ordi[2][0]);
 printf("\n %ld.... ",tab_ordi[3][0]);
 
}
Ayant cherché plus de 2 heures je suis légérement desespéré donc si vous pouviez corriger ma syntaxe et m'expliquer en uqoi consister mon erreur je vous en serait reconnaisant


 
T'as galéré plus de 2h sans te rendre compte que si "tab_ordi" est un tableau en 2D (un "int[][]" ), alors ce n'est certainement pas un "int *" ???
 
La première chose que doit faire un débutant (ce n'est pas une tare, on l'a tous été) c'est de prendre son cours/livre/internet et de LIRE. Et il n'y en a pas beaucoup de trucs à lire, il n'y en a que 4:  

  • le cours
  • les message du compilo (seul le premier parce qu'en général le premier truc incompris entraine tous les autres trucs)
  • le cours
  • le cours


Même moi qui programme sous unix depuis 1988, quand j'ai voulu apprendre Python cet été, j'ai téléchargé un cours Python depuis le net, je l'ai imprimé, relié puis LU !!!
 
Pour ton pb, t'as 3 façons de déclarer ta fonction

  • int num_perso_ordi(int tab_ordi[][5]) (cf réponse de Jésus Christ)
  • int num_perso_ordi(int tab_ordi[5][5])
  • void num_perso_ordi(int tab_ordi[5][5]) parce que je ne vois pas pourquoi on déclare "int" une fonction qui ne renvoie rien...


PS: Le format "%ld" de "printf()" est fait pour des "long int". Pour des "int", faut utiliser "%d". Voici d'ailleurs la liste des formats pour les int et ses dérivés
(signed) int => %d
unsigned int => %u
(signed) short (int) => %hd
(unsigned) short (int) => %hu
(signed) long (int) => %ld
(unsigned) long (int) => %lu


Message édité par Sve@r le 14-12-2006 à 22:50:27

---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.

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

  Probleme Urgent C tableau a deux dimensions

 

Sujets relatifs
Problème expression régulière !avoir accès à un tableau créé dans une form
[batch] problème de droits d'utilisateurIntervertir deux lignes dans une table avec ordre > URGENT !
Problème de codage d'une chaine de caractèreProblème code CSS et image<< URGENT svp
Script tableau clanwar (matches)Probleme lecteur XSPF
Problème d'execution automatique de page html 
Plus de sujets relatifs à : Probleme Urgent C tableau a deux dimensions


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