Saisir un tableau
programmation
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
ce programme là ne me donne pas un résultat correct
void tab (int *tab2, int nb)
{
int i;
for (i = 1; i <= nb; i++)
{printf (" entrer les elements de la base \n", tab2[i]);
scanf ("%d", &tab2[i]);
}
}
int main ()
int x[4],n;
printf("entrer le nombre des elements de x \n ",n);
scanf("%d\n",&n);
tab(x,n);
}
ce programme là ne me donne pas un résultat correct
void tab (int *tab2, int nb)
{
int i;
for (i = 1; i <= nb; i++)
{printf (" entrer les elements de la base \n", tab2[i]);
scanf ("%d", &tab2[i]);
}
}
int main ()
int x[4],n;
printf("entrer le nombre des elements de x \n ",n);
scanf("%d\n",&n);
tab(x,n);
}
2 réponses
-
Bonjour,
scanf ("%d", &tab2[i]); pas de & pour la cellule d'un tableau.
-
Bonsoir.
Lorsqu'il s'agit d'un nombre, si, on met bien &.
Par contre, dans ce cas, on ne le met pas :
char tab[100]; printf("Entrez du texte : "); scanf("%s", tab); printf("Voici le texte entre : %s", tab);
Bien sur cet exemple n'est pas le meilleur car il est déconseillé d'utiliser scanf lorsqu'on rentre une chaîne de caractère, cela peut créer plusieurs problèmes, par exemple on ne pourra pas écrire un texte avec des espaces, on verra du dépassement de mémoire etc, la meilleure syntaxe seraitfgets(tab, 100, stdin);
c'est la saisie de texte sécurisée
Et petite remarque pour l'auteur, ton main ne renvoie rien ? -
-
-
-
-
-
Bonjour,
il faut bien le & pour un élément de tableau.
Par contre ne mets pas de "\n" dans un scanf()
Et les indices de tableau commencent à 0 pas à 1.
Doncvoid tab (int *tab2, int nb) { int i; for (i = 0; i < nb; i++) { printf( "entrer l'element de la base %d\n" , i+1 ); scanf( "%d" , &tab2[i] ); } } int main () { int x[4] , n; printf( "entrer le nombre d'elements de x\n " ); scanf( "%d" , &n ); if ( n <= 4 ) tab(x,n); else printf("Nombre d'elements trop important\n"); }