Compter les cases non vide d'un tableau C++

superstarzzz Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -  
Pacorabanix Messages postés 3248 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Voila je sent que c'est une question facile car il y a 3mois je savais le faire.
Comment compter le nombre de case non vide d'un tableau à n ligne et m colonnes ?
Exemple :

je déclare
int T[100][100]

l'utilisateur rentre des valeurs dans ces cases, ensuite j'aimerai compter combien de case et de colonnes l'utilisateur a rempli.
J'ai penser a sizeof(), erreur ?
A voir également:

5 réponses

toto1983 Messages postés 205 Date d'inscription   Statut Membre Dernière intervention   13
 
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 ?
1
Pacorabanix Messages postés 3248 Date d'inscription   Statut Membre Dernière intervention   663
 
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.
0
Pacorabanix Messages postés 3248 Date d'inscription   Statut Membre Dernière intervention   663
 
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 !
0
toto1983 Messages postés 205 Date d'inscription   Statut Membre Dernière intervention   13
 
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 ;)
0
Pacorabanix Messages postés 3248 Date d'inscription   Statut Membre Dernière intervention   663
 
ah oui pardon tu parlais de sizeof pour parcourir le tableau, je n'avais pas compris ça ! Ok.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
toto1983 Messages postés 205 Date d'inscription   Statut Membre Dernière intervention   13
 
Après j'ai omis de dire : tu traite tes variables : si tu te retrouve face à un vide tu incrémente pas ton compteur enfin g pas trop le temps de m'y attarder :/
0