[c++] boucle qui boucle trop? (Tableau)
Fermé
corseb
Messages postés
1
Date d'inscription
mercredi 2 juin 2004
Statut
Membre
Dernière intervention
8 décembre 2006
-
8 déc. 2006 à 20:35
Utilisateur anonyme - 15 déc. 2006 à 18:12
Utilisateur anonyme - 15 déc. 2006 à 18:12
A voir également:
- [c++] boucle qui boucle trop? (Tableau)
- Tableau croisé dynamique - Guide
- Tableau ascii - Guide
- Tableau word - Guide
- Trier tableau excel - Guide
- Xiaomi s'éteint tout seul et se rallume en boucle - Forum Xiaomi
5 réponses
starmad88
Messages postés
4
Date d'inscription
samedi 9 décembre 2006
Statut
Membre
Dernière intervention
9 décembre 2006
9 déc. 2006 à 04:51
9 déc. 2006 à 04:51
1. Tu n'as pas le choix, tu veux savoir quel est la composition de ton image, donc t'as besoin d'aller voir la valeur de tous les pixel. Ta bouble ne boucle pas trop.
2. Après réflechis bien à ce que tu veux. Tu veux que la ieme case de ton tableau histoArray contient le nombre de pixel de valeur i. Donc pour chaque pixel, tu regardes sa valeur (i) et tu "vas dire" à ton tableau que t'as un nouveau pixel de valeur i. À toi de faire la suite et de trouver le code qui va bien ;-)
2. Après réflechis bien à ce que tu veux. Tu veux que la ieme case de ton tableau histoArray contient le nombre de pixel de valeur i. Donc pour chaque pixel, tu regardes sa valeur (i) et tu "vas dire" à ton tableau que t'as un nouveau pixel de valeur i. À toi de faire la suite et de trouver le code qui va bien ;-)
Salut! Merci de ta reponse!
Alors entre temps quelqu'un m'avait filer ce code, sur le forum de Microsoft:
unsigned char bitmap[256][256];
// ... init the bitmap
unsigned int repeatCount[256] = {0};
for(int y = 0; y < 256; ++y)
{
for(int x = 0; x < 256; ++x)
{
repeatCount[ bitmap[ y ][ x ] ] += 1;
}
}
Mais il me semble que cela ne fait pas ce que je veux non plus...
Je vais donc reflechir a ce que tu m'as dit!!
En effet j'ai compris que je suis obligee de voir chaque pixels (donc faire 65 535 verifications). Maintenant, je dois faire en sorte qu'il y a une somme qui additionne les "i" ...
HM....???
Alors entre temps quelqu'un m'avait filer ce code, sur le forum de Microsoft:
unsigned char bitmap[256][256];
// ... init the bitmap
unsigned int repeatCount[256] = {0};
for(int y = 0; y < 256; ++y)
{
for(int x = 0; x < 256; ++x)
{
repeatCount[ bitmap[ y ][ x ] ] += 1;
}
}
Mais il me semble que cela ne fait pas ce que je veux non plus...
Je vais donc reflechir a ce que tu m'as dit!!
En effet j'ai compris que je suis obligee de voir chaque pixels (donc faire 65 535 verifications). Maintenant, je dois faire en sorte qu'il y a une somme qui additionne les "i" ...
HM....???
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
13 déc. 2006 à 08:54
13 déc. 2006 à 08:54
Salut.
Moi j'aurai dit pareil que le gars qui t'a donner la soluce.
peut être faire une première boucle pour bien initialiser repeatCount à 0.
Mais il me semble que cela ne fait pas ce que je veux non plus...
essai d'en être sur, car à par le problème d'initialisation, je vois vraiment pas d'où pourrai venir l'erreur.
Moi j'aurai dit pareil que le gars qui t'a donner la soluce.
peut être faire une première boucle pour bien initialiser repeatCount à 0.
Mais il me semble que cela ne fait pas ce que je veux non plus...
essai d'en être sur, car à par le problème d'initialisation, je vois vraiment pas d'où pourrai venir l'erreur.
mamiemando
Messages postés
33453
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
6 janvier 2025
7 812
14 déc. 2006 à 21:43
14 déc. 2006 à 21:43
#include <iostream> #include <stdlib.h> ... // Taille de l'image + nb de nuances de gris const unsigned int xmax = 256; const unsigned int ymax = 256; const unsigned int nb_nuance = 256; // Compter le nombre d'occurrence de chaque nuance de gris unsigned int *nb_occ = (unsigned int *)calloc(nb_nuance,sizeof(unsigned int)); // on fait un calloc et non un malloc pour initialiser chaque case à 0 for (unsigned int x=0; x<xmax; ++x){ for (unsigned int y=0;y<ymax; ++y){ const unsigned & nuance_cur = img[x][y]; ++nb_occ[nuance_cur]; } } // Affichage for(unsigned int i=0;i<nb_nuances;++i){ std::cout << "Nuance " << i << '\t' << nb_occ[i] << std::endl; } free(nb_occ);
Bonne chance
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Utilisateur anonyme
15 déc. 2006 à 18:12
15 déc. 2006 à 18:12
c'est normal que ton texte s'affiche 256*256 fois fu que tu l'a mis dans ta boucle