Fournir valeurs tableau rapidement

Résolu
Gretyzde Messages postés 97 Date d'inscription   Statut Membre Dernière intervention   -  
sambia39 Messages postés 610 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

j'aimerais connaître le moyen le plus rapide pour insérer beaucoup de valeurs dans un tableau car je ne connais que cette méthode qui est assez longue: Ex:Tab[20]={1..20}

Merci d'avance.

2 réponses

  1. JwTdd
     
    Salut, il n'y a que cette methode si tu veux entrer une combinaison de valeurs qui n'ont rien a voir les un aux autre.
    Mais si il ya une certaine logique (arithmetique ou autre) on peut utiliser un algorithme comme dans la reponse de sambia39 là https://forums.commentcamarche.net/forum/affich-31304406-stack-around-the-variable-tab-was-corrupted

    Les 4 codes suivants font la même chose mais le dernier ne fonctionne que parceque les chiffres que l'on veut mettre se suivent.

    int Tab[3]={1,2,3};   //declarer et initialiser avec des valeurs


    -----------------------------------------------------
    int Tab[3]; //declarer le tableau
    Tab = {1,2,3};  //mettre toute les valeurs dans le tableau
    

    -----------------------------------------------------
    int Tab[3]; //declarer le tableau
    Tab[0]=1;   //mettre les valeurs un a un
    Tab[1]=2;
    Tab[2]=3;


    -----------------------------------------------------
    int Tab[3]; //declarer le tableau
    for (int i = 0; i<3; i++)  // pour tout i de 0 à 2
    {
         Tab[i]=i+1;        // mettre i+1 dans Tab[i]
    }
    1
    1. Gretyzde Messages postés 97 Date d'inscription   Statut Membre Dernière intervention   2
       
      Re!


      J'ai une question à propos de la dernière structure:
              int i;
      	
      	int tabnbr[20];
      	
      
      	for (i=0;i<20;i++)
      	{
      		tabnbr[i]=i+1;
      	}
      	printf("%d\n", tabnbr[i]);
      


      Mon printf n'est pas correct, est-ce normal?
      0
    2. Franck7511 Messages postés 14571 Date d'inscription   Statut Membre Dernière intervention   1 121
       
      Essaie ça plutôt :
              int i;
      	int tabnbr[20];
      	for (i=0;i<20;i++)
      	{
      		tabnbr[i]=i+1;
                      printf("tabnbr[%d] = %d\n", i, tabnbr[i]);
      	}
      
      0
      1. Gretyzde Messages postés 97 Date d'inscription   Statut Membre Dernière intervention   2 > Franck7511 Messages postés 14571 Date d'inscription   Statut Membre Dernière intervention  
         
        Oui, c'est juste. Je te remercie
        0
  2. sambia39 Messages postés 610 Date d'inscription   Statut Membre Dernière intervention   50
     
    Bonsoir
    à la question posée, @Gretyzde: Mon printf n'est pas correct, est-ce normal?
    l'écriture de ton
     printf 
    et la ou tu la placer est correcte mais, c'est plutôt afficher la valeur de l'indice
     i 
    contenue dans ton tableau qui est incorrecte car, celui-ci a pris l'indice hors tableaux de l'itération qui a été évaluer donc cas ici
    i = 20
    hors il existe pas donc tu écrase quelque chose en mémoire.
    Il est préférable de faire
     i-1
    pour afficher le dernier élément pour la simple raison qu'on informatique, en compte à partir de 0 donc si tu déclares un tableau de 20 éléments elle contiendra bien 20 éléments mais en commençant par l'indice à 0 pour afficher le dernier élément du tableau il faut donc faire 20-1 = 19 exemples
    #include <stdio.h>
    #include <stdlib.h>
    
    int main( void ){
    
     unsigned int i = 0;
     unsigned int iTab[6];
     for( i = 0; i <6; i++ ){
      *(iTab+i) = i*2;
      printf("%d\t", *(iTab+i) );
     }
    
     printf( "\nValeur de I = %d\n", i );
     printf( "Tab de %d est %d\n",i, iTab[i-1] );
    
    
     return( EXIT_SUCCESS );
    }
    

    à bientôt
    Toute connaissance est une réponse à une question.
    0