Fournir valeurs tableau rapidement

Résolu
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. 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. 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. 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
    3. @Franck7511Oui, c'est juste. Je te remercie
      0
  2. 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