A voir également:
- Compter les cases non vide d'un tableau C++
- Tableau word - Guide
- Trier un tableau excel - Guide
- Tableau ascii - Guide
- Supprimer page word vide - Guide
- Créer un compte google - Guide
5 réponses
Explique exactement ce que tu veux faire , pasque si tu donnes pas de précision on peut pas t'aider si un utilisateur entre une donnée d'un tableau est-ce qu'il a le droit de sauter une ligne et colonne ? par exemple pasque c bien joli de vouloir compter les lignes et colonnes remplis ou pas d'un tableau encore faut il les traiter une première fois tu saisis ?
il suffit de parcourir ton tableau (avec deux boucles for par exemple) et d'avoir une variable compteur qui s'incrémente si une case est vide.
Attention bien initialiser toutes les valeurs du tableau à une certaine valeur que tu reconnaitras comme "vide" (-1 par exemple si l'utilisateur ne doit rentrer que des positifs), sinon les cases contiendront en fait déjà qqchose (qui dépend de l'état de la mémoire à ce moment) et le compte ne marchera pas.
Pour sizeof ce n'est pas la bonne méthode car sizeof te donnera la taille des tableaux, pas le nombre de cases où tu as effectivement mis quelquechose.
Attention bien initialiser toutes les valeurs du tableau à une certaine valeur que tu reconnaitras comme "vide" (-1 par exemple si l'utilisateur ne doit rentrer que des positifs), sinon les cases contiendront en fait déjà qqchose (qui dépend de l'état de la mémoire à ce moment) et le compte ne marchera pas.
Pour sizeof ce n'est pas la bonne méthode car sizeof te donnera la taille des tableaux, pas le nombre de cases où tu as effectivement mis quelquechose.
pardon pour ma dernière méthode je propose un moyen pour compter les cases vides d'un tableau, mais la modification est extrêmement petite pour compter les cases non-vides bien sûr !
Voilà exactement ce que je pensais : la ligne d'un tableau contient toujours quelque chose par exemple si tu fais
for (i = 0; i<sizeof(colonne); i++)
for (j = 0; j<sizeof(colonne); j++)
{
cin>>tab[i][j];
if (tab[i][j] == '\n') //si par exemple tu délimite tes entrées par un retour chariot
tab[i][j] = "NULL" //si c un char tu mets la ligne à NULL
if (tab[i][j] == 0)
tab[i][j] = 0 //si c un char
}
Essaie je suis pas sur que ça marche néanmoins qui tente rien n'a rien ;)
for (i = 0; i<sizeof(colonne); i++)
for (j = 0; j<sizeof(colonne); j++)
{
cin>>tab[i][j];
if (tab[i][j] == '\n') //si par exemple tu délimite tes entrées par un retour chariot
tab[i][j] = "NULL" //si c un char tu mets la ligne à NULL
if (tab[i][j] == 0)
tab[i][j] = 0 //si c un char
}
Essaie je suis pas sur que ça marche néanmoins qui tente rien n'a rien ;)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question