2009-12-16 4 views
0

paxdiablo a donné la réponse précédente pour cela fonctionnant avec char tableau .. puis-je savoir comment travailler avec tableau int pour le même code ci-dessous?J'ai la même question de structure pour int array

LIKE:

struct encode { 
    int code[MAX]; //instead char code[MAX] 
} a[10]; 

int main() { 
    int i, j; 
    int x[] = {3,0,2,5,9,3,1}; 
    //instead char x[] = {'3','0','2','5','9','3','1','\0'}; 
    for(i = 0; i < 1; i++) { 
     for(j = 0; j < 7; j++) { 
      printf("%d", x[j]); 
     } 
     printf("\n"); 

     a[0].code=x; 
     //strcpy(a[0].code, x); for char 

    } 
    printf("%d\n",a[0].code); 
    //printf("%s\n",a[0].code); for char 
    return 0; 
} 

Comme spectacle peut-il être fait pour le tableau int? Merci d'avance.

+0

Quel est le type de 'a [0] .code'? Est-ce un 'int'? Lorsque vous l'imprimez avec '% d' comme format, que voulez-vous que la sortie soit? –

+0

Si vous n'arrivez pas à résoudre le même problème sans avoir besoin d'aide, je ne suis pas sûr que vous soyez un programmeur. –

+0

Pouvez-vous clarifier la question? Je n'ai rien compris. –

Répondre

1

Référez-réponse de votre question précédente question on struct with char array

  • Utilisez memcpy pour copier l'entier éléments du tableau.
  • utilisez %d dans le cas où vous voulez imprimer entiers.
+0

J'ai seulement posé la question précédente dans le lien .. memcpy avec% d imprime la mémoire et non l'inter-tableau. Y a-t-il quelque chose qui me manque? – meg

+0

Oui. C'est pourquoi j'ai demandé de renvoyer la réponse et d'utiliser memcpy au lieu de strcpy pour copier des nombres entiers. –

0

Quelques questions pour vous, tous les extraits ci-dessous sont de votre code:

  1. Dans ce qui suit, quel est le type de x[j]. Quel type attend %c?

    printf("%c", x[j]);

  2. Quel est le type de a[0].code ci-dessous? C'est un tableau, avec une mémoire prédéfinie qui lui est allouée. Qu'est-ce que vous attendez de la déclaration ci-dessus à faire?

    a[0].code=x;
  3. Encore une fois, quel est le type de a[0].code? Que prévoit le format %d?

    printf("%d\n",a[0].code);

Les réponses à toutes les questions ci-dessus sont faciles, ou devraient être disponibles dans un livre de texte.

La programmation ne fonctionne pas par essais et erreurs. Vous devriez trouver une bonne référence et un bon manuel, et réfléchir à ce que vous faites.

Dans un premier temps, veuillez répondre aux questions que j'ai posées ci-dessus, et j'espère que vous serez en mesure de corriger vous-même la plupart de vos erreurs.

+0

Merci Alok. C'est mon erreur dans "% d" et pas "% c" & a [0] .code type est 'int' mais x est aussi int pendant la compilation d'un [0] .code = x; donne "types incompatibles dans l'affectation". J'ai utilisé memcpy (encd [k].code, c, taille de c); mais la valeur de résultat pour printf ("% d", a [0] .code); donne 8731424 qui est la mémoire et non "3025931" que j'attends. J'ai travaillé avec char [] qui donne le résultat requis .. mais quand int tableau ne donne pas le même résultat. C'est ce dont j'ai besoin int x [] = {3,2,4,5,6} stockez-le dans struct et affichez comme "32456". Merci, je vais changer l'extrait original qui est en train de cofuser. – meg

+0

'a [0] .code' n'est pas' int' parce que vous l'avez déclaré comme un * tableau de 'int's *! S'il vous plaît essayez de répondre aux questions en fonction de votre code, pas en fonction de ce que vous voulez qu'ils soient. –