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);
}
A voir également:
- Saisir un tableau
- Tableau word - Guide
- Rech. ou saisir l'url - Guide
- Trier un tableau excel - Guide
- Tableau ascii - Guide
- Imprimer un tableau excel - Guide
2 réponses
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.
Donc
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.
Donc
void 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"); }
Lorsqu'il s'agit d'un nombre, si, on met bien &.
Par contre, dans ce cas, on ne le met pas :
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 serait c'est la saisie de texte sécurisée
Et petite remarque pour l'auteur, ton main ne renvoie rien ?
Si si, on peut mettre des espaces avec scanf et on peut limiter la taille.
Par exemple : scanf("%99[^\n]", tab);
Cdlt,
On peut faire cela que en C99 non ?
Mais avec scanf, même avec cette syntaxe, le reste de la chaîne entrée (si elle dépasse la taille) ne sera pas enregistrée dans le buffer ? Elle sera vidée ?