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.