Bonjour,
j'essai de corriger un DS portant sur la POO.
voici mon code:
--------------------------------------------------------------------------------
#include <stdio.h>
#include
class bag
{
private :
int nbmax;
char el[100];
public :
bag();
bag(int v);
int full();
int empty();
int size();
void add(char c);
int remove(int v);
int occurence(char c);
char getel();
};
bag :: bag()
{
nbmax = 1;
}
bag :: bag(int nb)
{
nbmax = nb;
}
int bag :: full()
{
if ( strlen(el) == nbmax ) return 1;
else return 0;
}
int bag :: size()
{
int i=0, cpt=0;
while (i<nbmax)
{
if (el[i] == NULL) cpt=cpt+1;
i = i+1;
}
return cpt;
}
void bag :: add(char c)
{
if (full() == 0)
{
int s;
s = size();
el[s] = c;
}
}
char bag :: getel()
{
int i;
for (i=0; i<nbmax; i++)
{
printf("%c",el[i]);
}
}
int main()
{
bag b=bag(3);
b.add('c');
b.add('d');
b.add('e');
printf("%d",b.size());
b.getel();
return 0;
}
-------------------------------------------------------------------------------------------
Lors de l'éxéution, la console me renvoie 0 (b.size) et e (b.getel).
Mon problème est le suivant :
La taille => la console devrait renvoyer 3 au lieu de 0.
Je me demande si l'erreur se trouve ici : "el[i] == NULL".
Si c'est le cas, je ne sais pas comment vérifier qu'une entité du tableau n'existe pas et ce, malgré des recherches.
Merci d'avance pour vos conseil :)
Afficher la suite