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.
A voir également:

2 réponses

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
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
Franck7511 Messages postés 14296 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
Gretyzde Messages postés 97 Date d'inscription   Statut Membre Dernière intervention   2 > Franck7511 Messages postés 14296 Date d'inscription   Statut Membre Dernière intervention  
 
Oui, c'est juste. Je te remercie
0
sambia39 Messages postés 610 Date d'inscription   Statut Membre Dernière intervention   49
 
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