Je suis presque fait avec ce programme, mais quelque chose ne va pas dans main
. Voici les instructions du projet :
Devoir :
Écrire un programme qui garde une trace du nombre de cafards dans deux maisons adjacentes pendant un certain nombre de semaines. Le nombre de cafards dans les maisons sera déterminé par ce qui suit :
- Le nombre initial de cafards pour chaque maison est un nombre aléatoire entre 10 et 100.
- Chaque semaine, le nombre de cafards augmente de 30%.
- Les deux maisons partagent un mur, à travers lequel les cafards peuvent migrer d'une maison à l'autre. Dans une semaine donnée, si une maison a plus de cafards que l'autre, les cafards de la maison ayant la plus forte population migrent vers la maison ayant la plus faible population. En particulier, 30% de la différence (arrondie) de population migre.
- Toutes les quatre semaines, l'une des maisons est visitée par un exterminateur, ce qui entraîne une réduction de 90% (arrondie) du nombre de cafards dans cette maison.
Voici mon code :
#include
#include
using namespace std;
int house, increase, roaches, filthyBeasts; // Mes variables pour mes quatre fonctions
int initialCount(int house);
int weeklyIncrease(int increase);
int roachesMigration(int more, int fewer, int change);
int exterminationTime (int filthyBeasts);
// Mes quatre prototypes de fonctions
int main()
{
int houseA, houseB;
houseA = initialCount(houseA); // Initialisation du nombre initial de la Maison A.
houseB = initialCount(houseB); // Initialisation du nombre initial de la Maison B.
int week = 0;
for (week = 0; week < 11; week++) // Ma boucle for itérant jusqu'à 11 semaines.
{
houseA = weeklyIncrease(houseA);
houseB = weeklyIncrease(houseB);
cout << "Pour la semaine " << week << ", le nombre total de cafards dans la Maison A est " << houseA << endl;
cout << "Pour la semaine " << week << ", le nombre total de cafards dans la Maison B est " << houseB << endl;
if((houseA > houseB)) // Option de migration 1
{
houseB = roachesMigration(houseA, houseB);
}
else if((houseB > houseA)) // Option de migration 2
{
houseA = roachesMigration(houseA, houseB);
}
if ((week + 1) % 4 == 0) // C'est l'heure de l'extermination !
{
if ((rand() % 2) == 0) // Obtenir un nombre aléatoire entre 0 et 1.
{
houseB = exterminationTime(houseB);
}
else
{
houseA = exterminationTime(houseA);
}
}
}
return 0;
}
int initialCount(int house) // Initialiser les deux maisons à des nombres aléatoires entre 10 et 100.
{
int num;
num = (rand() % 91) + 10;
return num;
}
int weeklyIncrease(int increaseHouses) // Augmenter les cafards dans les deux maisons de 30% par semaine.
{
int increase = 0;
increase = (increaseHouses * .3) + increaseHouses;
return increase;
}
int roachesMigration(int more, int fewer, int change)
{
more -= change;
fewer += change;
return ((more - fewer) * .3);
}
int exterminationTime(int filthyBeasts) // Se débarrasser de ces petites bêtes sales !
{
filthyBeasts = (filthyBeasts * .1);
return filthyBeasts;
}
Il y a des problèmes avec les fonctions de migration et d'extermination. Je reçois un message d'erreur du compilateur qui dit : "erreur : Problème sémantique : Aucune fonction correspondante pour appeler 'roachesMigration'". De plus, aux semaines 4 et 8, la maison sélectionnée au hasard devrait être exterminée, et le nombre de cafards dans cette maison devrait être 90% inférieur à la semaine précédente. Que pensez-vous que je devrais faire pour corriger ces problèmes ? J'apprécie vraiment toute l'aide !