A voir également:
- Saisir un tableau
- Tableau croisé dynamique - Guide
- Rech. ou saisir l'url - Guide
- Tableau ascii - Guide
- Comment faire un tableau - Guide
- Trier un tableau excel - Guide
2 réponses
Pierre1310
Messages postés
8564
Date d'inscription
lundi 21 décembre 2015
Statut
Membre
Dernière intervention
21 juillet 2020
649
4 mars 2016 à 12:12
4 mars 2016 à 12:12
Bonjour,
scanf ("%d", &tab2[i]); pas de & pour la cellule d'un tableau.
scanf ("%d", &tab2[i]); pas de & pour la cellule d'un tableau.
Dalfab
Messages postés
706
Date d'inscription
dimanche 7 février 2016
Statut
Membre
Dernière intervention
2 novembre 2023
101
4 mars 2016 à 21:31
4 mars 2016 à 21:31
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"); }
Modifié par EchoIsON le 4/03/2016 à 22:25
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 ?
5 mars 2016 à 22:32
Si si, on peut mettre des espaces avec scanf et on peut limiter la taille.
Par exemple : scanf("%99[^\n]", tab);
Cdlt,
5 mars 2016 à 22:35
On peut faire cela que en C99 non ?
5 mars 2016 à 22:35
Modifié par EchoIsON le 5/03/2016 à 22:42
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 ?