rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Résolu

[C] donner valeurs à un tableau après déclara

SofLS, le jeudi 24 juillet 2008 à 15:49:46
Bonjour,

Comme (presque) dit dans le titre, j'ai un problème pour affecter des valeurs à un tableau à deux dimensions après avoir déclaré mon tableau (il faut absolument que j'affecte après déclaration puisque je compte utiliser cette structure :
struct Jeu
{
tab Nombre;
tab Solution;
};


où tab est :
typedef int tab[10][10];

Pour info, ça marche niquel quand je déclare et affecte en même temps :
tab tab1={{4,6,3,1,1,1,8,9,4,6},{3,7,8,9,6,4,6,2,5,1},{3,2,5,8,7­,3,9,6,7,5},{2,8,4,1,7,8,8,3,9,6},{1,5,6,2,4,9,3,1,8,5},{6,9­,8,5,4,2,7,1,3,8},{8,4,9,6,9,1,8,5,9,2},{4,1,2,9,5,7,1,9,6,3­},{7,3,4,4,9,3,6,8,5,6},{6,7,7,3,9,5,4,1,1,9}};

J'ai fait plusieurs tests mais je n'ai que des erreurs (certains tests sont vraiment stupide mais je commence à desesperer!^^) :
tab tab2;
tab2={{1,0,0,1,0,1,0,0,0,1},{0,0,0,0,0,0,1,0,1,0},{1,0,1,0,1­,0,0,0,0,0},{0,1,0,0,0,0,1,0,0,0},{0,0,0,0,1,0,0,1,0,1},{1,0­,1,0,0,0,0,0,0,0},{0,0,0,0,1,0,1,0,1,0},{0,1,0,1,0,0,0,1,0,0­},{0,0,1,0,0,1,0,0,0,1},{0,1,0,0,1,0,0,1,0,0}};

tab tab4;
tab4[10][10]={{1,0,0,1,0,1,0,0,0,1},{0,0,0,0,0,0,1,0,1,0},{1­,0,1,0,1,0,0,0,0,0},{0,1,0,0,0,0,1,0,0,0},{0,0,0,0,1,0,0,1,0­,1},{1,0,1,0,0,0,0,0,0,0},{0,0,0,0,1,0,1,0,1,0},{0,1,0,1,0,0­,0,1,0,0},{0,0,1,0,0,1,0,0,0,1},{0,1,0,0,1,0,0,1,0,0}};

tab tab5;
tab5[]={{1,0,0,1,0,1,0,0,0,1},{0,0,0,0,0,0,1,0,1,0},{1,0,1,0­,1,0,0,0,0,0},{0,1,0,0,0,0,1,0,0,0},{0,0,0,0,1,0,0,1,0,1},{1­,0,1,0,0,0,0,0,0,0},{0,0,0,0,1,0,1,0,1,0},{0,1,0,1,0,0,0,1,0­,0},{0,0,1,0,0,1,0,0,0,1},{0,1,0,0,1,0,0,1,0,0}};

tab tab6;
tab6[][]={{1,0,0,1,0,1,0,0,0,1},{0,0,0,0,0,0,1,0,1,0},{1,0,1­,0,1,0,0,0,0,0},{0,1,0,0,0,0,1,0,0,0},{0,0,0,0,1,0,0,1,0,1},­{1,0,1,0,0,0,0,0,0,0},{0,0,0,0,1,0,1,0,1,0},{0,1,0,1,0,0,0,1­,0,0},{0,0,1,0,0,1,0,0,0,1},{0,1,0,0,1,0,0,1,0,0}};

tab tab7;
tab7[10][]={{1,0,0,1,0,1,0,0,0,1},{0,0,0,0,0,0,1,0,1,0},{1,0­,1,0,1,0,0,0,0,0},{0,1,0,0,0,0,1,0,0,0},{0,0,0,0,1,0,0,1,0,1­},{1,0,1,0,0,0,0,0,0,0},{0,0,0,0,1,0,1,0,1,0},{0,1,0,1,0,0,0­,1,0,0},{0,0,1,0,0,1,0,0,0,1},{0,1,0,0,1,0,0,1,0,0}};

les erreurs sont toutes "expected expression before ']' token" , sauf pour tab4 où c'est '}'.

Quelqu'un peut-il m'aider?
Configuration: Windows XP
Internet Explorer 7.0
Répondre à SofLS  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
arkos78, le jeudi 24 juillet 2008 à 15:52:03
bonjour c très mauvais de remplir un tableau comme çela voit une autre méthode
Répondre à arkos78

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Char Snipeur, le jeudi 24 juillet 2008 à 15:55:49
essai :
const tab T1={...};
tab T2 = (tab){...};
int T3[10][10]=(int**){...};
const int T4[10][10]={...};// Celui là, au moins devrais fonctionné. Salutation ! avant je croyais, maintenant je suis fixé.Jésus Christ
Char Snipeur
Répondre à Char Snipeur

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
SofLS, le jeudi 24 juillet 2008 à 15:57:28
Wouah ! Quelle rapidité!^^

Pourquoi c'est mauvais?

Je ne voies pas comment faire autrement, il n'y a aucune logique dans l'affectation des nombre du tableau, c'est une grille de jeu.
je peux pas faire un truc du genre :
for i
for j
tab1[i][j]=?

A moins qu'il y ai une méthode que je ne connaisse pas?
Répondre à SofLS

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Char Snipeur, le jeudi 24 juillet 2008 à 16:04:42
Si les tableau ne sont pas amener à changer, c'est une méthode que je ne trouve pas mauvaise.
Par contre, défini tes tableau comme étant constant. Salutation ! avant je croyais, maintenant je suis fixé.Jésus Christ
Char Snipeur
Répondre à Char Snipeur

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
SofLS, le jeudi 24 juillet 2008 à 16:10:19
J'avais pas vu ta réponse Char Sniper,
j'ai testé 1,2 et 4 marchent.

En effet mes tableaux ne changeront pas, mais dans ce cas, il faut que je les définisse avec le type struct Jeu
const struct Jeu T1.Nombre={...} ne marche pas.
D'ailleurs il faudrait peut-être affecter des valeurs à Nombre et Solution en même temsp?
Répondre à SofLS

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
SofLS, le jeudi 24 juillet 2008 à 16:15:04
J'ai réussi!

Pour ceux que ça interesse, il suffit de faire :
const struct Jeu T1={ {...}, {...} };

Merci pour votre aide!
Répondre à SofLS

7


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Char Snipeur, le jeudi 24 juillet 2008 à 16:34:28
Je pense que c'est bon, mais c'est assez dangereux comme manière de faire !
As tu compris pourquoi ça fonctionnait ?
Si ce n'est pas le cas, ça me parait extremement dangereux ce que tu fais.
T1 est un tableau à trois dimension en fait. Salutation ! avant je croyais, maintenant je suis fixé.Jésus Christ
Char Snipeur
Répondre à Char Snipeur

8


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
SofLS, le jeudi 24 juillet 2008 à 23:48:39
Oui, j'ai compris... a moins qu'il y ait une astuce?

En fait ce que je ne comprends pas c'est pourquoi la déclaration de tab2 ne marche pas.

C'est vrai, T1 est un tab à 3 dimensions, j'avais pas vu! En même temps, je vais rajouter des choses dans ma structure plus tard.
Répondre à SofLS

9


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Char Snipeur, le vendredi 25 juillet 2008 à 09:08:08
à ce sujet, je te conseil de lire le chapitre7 (du moins le début) de ce livre :
http://beuss.developpez.com/tutoriels/pcasm/#LS1
Il m'a fait comprendre la nature des structures, et je pense qu'il t'aidera.
En revanche pour les histoires de tableau, c'est un peu plus compliqué, je n'ai pas de source. Mais j'ai eu plein de discussion sur ce forum qui en traitait.
En résumé (même si ça ne t'aide pas beaucoup) un tableau n'est pas un pointeur, mais peux se comporté comme tel dans certains cas particuliers, il se raproche du int*const (c'est le pointeur qui est constant et non la valeur pointé).
Lorsque tu utilise met {...} cela correspond en fait à un tableau constant de valeurs constantes ! Il faut donc faire attention à ce qu'on fait avec.
Par exemple, tu peux affecter ce tableau à un pointeur grâce au transtypage :
int* C;
C=(int*){1,2,3};
par contre, attention à ne pas faire de free sur C à ce moment là, ça causerai une erreur !
{1,2,3} est de type (int const * const). Salutation ! avant je croyais, maintenant je suis fixé.Jésus Christ
Char Snipeur
Répondre à Char Snipeur

10


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 SofLS, le vendredi 25 juillet 2008 à 14:46:07
Merci beaucoup pour le lien, le document est très interessant; et merci pour toutes tes explications!
Répondre à SofLS
Bercy va généraliser la validation des déclarations de revenus par téléphone(Paris - Relax news) - Les contribuables pourront tous, dès cette année, valider leurs déclarations de revenus par téléphone. C'est du moins ce que révèle Le Figaro, dans son édition du 15 avril. Le quotidien s'est procuré une note interne adressée à... www.commentcamarche.net/actualites/bercy-va-generaliser-la-validation-des-declarations-de-revenus-par-telephone-5846484-actualite.php3
Comment faire un tableau sur excel (Résolu)Bonjour je débute sur excel, comment faire un tableau en le délimitant et sans que la ligne horisontal n'en finisse plus? Merci www.commentcamarche.net/forum/affich-3725300-comment-faire-un-tableau-sur-excel
Ubuntu : "un cd non valide a ete detecte" (Résolu)Bonjour, Je viens de télécharger la version 8.04.1 d'Ubuntu et j'ai gravé l'image avec burnatonce à faible vitesse sans aucun problème. Cependant, un message d'erreur s'affiche : "un cd non valide a ete detecte". Je... www.commentcamarche.net/forum/affich-8125105-ubuntu-un-cd-non-valide-a-ete-detecte-quot
Transformer couleur en valeur numériqueCette macro permet d'obtenir le code d'une couleur, pour traitement ultérieur selon votre besoinSub distri_couleur() Dim i For i = 1 To 12 Worksheets(1).Range("C" & i).Value = Worksheets(1).Range("B" & i).Interior.Color Next i End... www.commentcamarche.net/faq/sujet-7108-transformer-couleur-en-valeur-numerique
[Excel] Restreindre l'accés aux cellulesEncore une fonction peu connue : Expérimentez : Données / Validation Vous pouvez alors restreindre ou interdire l'accés aux "cellules stratégiques" de votre choix, avec message d'alerte. Vous pouvez faire afficher automatiquement des messages... www.commentcamarche.net/faq/sujet-3976-excel-restreindre-l-acces-aux-cellules
Mémoriser des constantes sous ExcelVous avez créé votre tableau, et il y a plusieurs constantes plusieurs fois utilisées (TVA, Taux horaire, etc..). Solution basique 1 :vous les inscrivez dans vos formules, ex : =C3*1,196 pour calculer une valeur TTC à partir d'une valeur... www.commentcamarche.net/faq/sujet-8662-memoriser-des-constantes-sous-excel
VBA Excel compter nbre valeur différente (Résolu)Bonjour, Je cherche un code VBA qui me permettrait de compter le nombre de valeur différente dans une colonne. Exemple : Colonne A Valeur : A2 : 10, A3 : 20, A4 : 10, A5 : 15, A6 : 20 Résultat en A1 : 3 (valeurs différentes) Merci de votre aide... www.commentcamarche.net/forum/affich-3916130-vba-excel-compter-nbre-valeur-differente
EXCEL - Copier une valeur vers une autre page (Résolu)Bonjour, Je suis navrée de venir vous embêtez avec une question aussi basique, j'ai pourtant bien chercher sur le forum mais je n'ai pas trouvé... J'ai plusieurs pages dans mon classeur et je voudrais simplement coller une valeur... www.commentcamarche.net/forum/affich-6262004-excel-copier-une-valeur-vers-une-autre-page
C# remplir un tableau de string avec listbox (Résolu)Bonjour à tous et merci d' avance de me repondre, Mon problème est de savoir comment remplir un tableau de string a l' aide d' elements se trouvant dans un listebox. Ex: string[] Tbl; listbox ListBox1; Etant donner que l' on a dejà... www.commentcamarche.net/forum/affich-1965879-c-remplir-un-tableau-de-string-avec-listbox
Javascript - L'objet Array L'objet Array est un objet du noyau Javascript permettant de créer et de manipuler des tableaux. Voici la syntaxe à utiliser pour créer une variable tableau : var x = new Array(element1[, element2, ...]); Si aucun élément n'est précisé en paramètre,... www.commentcamarche.net/javascript/jsarray.php3
VBScript - Les fonctions de chaînes de caractères Fonction Description Filter(InputStrings, Value[, Include[, Compare]]) Sélectionne des chaînes de caractères parmi un tableau de chaînes (InputStrings), selon les critères passés en argument. Value représente la chaîne à chercher. Include est une... www.commentcamarche.net/vbscript/vbs-fonctions-chaines-caracteres.php3
Tableur - La saisie de données Une cellule d'une feuille de calcul peut contenir une valeur ou bien être vide. La valeur d'une cellule possède deux caractéristiques essentielles : un type, c'est-à-dire le type intrinsèque de la donnée. On distingue généralement trois types de... www.commentcamarche.net/tableur/tabsaisie.php3
Toutes les réponses pour « [C] donner valeurs à un tableau après déclara »