Partage
  • Partager sur Facebook
  • Partager sur Twitter

somme des nombres pairs

6 mars 2009 à 18:24:06

Salut ,les gars je suis un nouveau menbre.
Quelq'un peut-il m'aider à écrire un programme me permettant de faire la somme des nombres pairs compris entre deux nombres nb1 et nb2?
  • Partager sur Facebook
  • Partager sur Twitter
6 mars 2009 à 19:47:19

Voilà :D , tu n'as plus qu'à remplir la fonction somme_pairs.
#include <iostream>
#include <iomanip>

using namespace std;

unsigned int somme_pairs(unsigned int nb1, unsigned int nb2)
{
    // >>>>>>>>>> Ton code ici <<<<<<<<<<
    return 0;
}

void test_somme_pairs(unsigned int nb1, unsigned int nb2, unsigned int attendu)
{
    cout << "somme_pairs(" << setw(3) << nb1 << ", " << setw(3) << nb2 << ") == " << attendu << " ... ";
    unsigned int resultat = somme_pairs(nb1,nb2);
    if (resultat==attendu)
        cout << "OK";
    else
        cout << "Faux (resultat = " << resultat << ")";
    cout << endl;
}

int main() {

    const int tests[][3] = {
        // Liste des tests
        { 0, 0, 0 }, { 0, 1, 0}, { 10, 10, 10 }, { 0, 10, 30 }, { 1, 11, 30}, {0, 100, 2550}, { 12, 100, 2520 }, { 11, 100, 2520 },
        // Terminateur pour la boucle
        {-1, -1, -1} 
    };

    for (int i = 0; tests[i][0] >= 0; i++)
    {
        test_somme_pairs(tests[i][0], tests[i][1], tests[i][2]);
    }
    return 0;
}


A la fin tu dois obtenir ça:
somme_pairs(  0,   0) == 0 ... OK
somme_pairs(  0,   1) == 0 ... OK
somme_pairs( 10,  10) == 10 ... OK
somme_pairs(  0,  10) == 30 ... OK
somme_pairs(  1,  11) == 30 ... OK
somme_pairs(  0, 100) == 2550 ... OK
somme_pairs( 12, 100) == 2520 ... OK
somme_pairs( 11, 100) == 2520 ... OK
  • Partager sur Facebook
  • Partager sur Twitter
6 mars 2009 à 19:51:20

Yop alors bienvenu à toi !

premièrement il y a un super tuto facile d'accès jettes-y un coup d'oeil ! .. mais voila un bout qui devrait faire ce que tu désir (j'ai pas testé mais sa devrait jouer) :
main(){
  int nbreUn = 0;
  int nbreDeux = 82; // à toi de modifier ces 2 nombres
  int total = 0;

  for(int x=nbreUn;x<nbreDeux;x++) // tu parcours tous les nombre compris entre nbreUn et nbreDeux
  {
    if(x%2==0) // si quand tu divises x par 2 il n'y a pas de reste (donc il est pair) alors tu l'additionne
      total += x;
  }
  cout<<"total :"<<total<<endl;
}


  • Partager sur Facebook
  • Partager sur Twitter
6 mars 2009 à 20:03:29

Ton code est correct mais pas très malin.

L'auteur de la question ferait mieux de chercher par lui-même, c'est le meilleur moyen d'apprendre.
  • Partager sur Facebook
  • Partager sur Twitter
Co-auteur du cours de C++. ||| Posez vos questions sur le forum ||| Me contacter.
6 mars 2009 à 20:05:33

En fait il existe une formule pour calculer ca il me semble :
il suffit de calculer le premier terme pair et le dernier (donc soit le nombre lui-même soit ce nombre +1 selon sa parité, et le dernier nombre ou le dernier nombre -1). Ensuite, il suffit de faire :
((dernier nombre pair - premier nombre pair) / 2 + 1)*((premier nombre pair + dernier nombre pair) / 2).


Si je me suis trompé dans la formule, merci de me le signaler.
  • Partager sur Facebook
  • Partager sur Twitter
10 janvier 2024 à 11:47:00

merci

-
Edité par avatarnike 10 janvier 2024 à 11:47:35

  • Partager sur Facebook
  • Partager sur Twitter
10 janvier 2024 à 12:02:48

Deedolith a écrit:

Quitte a faire du déterrage, autant proposer quelque chose de moderne:

std::vector - cppreference.com
std::array - cppreference.com
std::accumulate - cppreference.com
Lambda expressions (since C++11) - cppreference.com


Il ne manque plus que les templates et les pointeurs intelligents.

  • Partager sur Facebook
  • Partager sur Twitter
10 janvier 2024 à 13:32:29

@ avatarnike Bonjour, pour dire merci pas la peine de déterrer un sujet vous avez la possibilité de cliquer sur les pouces levés des messages qui vous ont aidés.

Déterrage

Citation des règles générales du forum :

Avant de poster un message, vérifiez la date du sujet dans lequel vous comptiez intervenir.

Si le dernier message sur le sujet date de plus de deux mois, mieux vaut ne pas répondre.
En effet, le déterrage d'un sujet nuit au bon fonctionnement du forum, et l'informatique pouvant grandement changer en quelques mois il n'est donc que rarement pertinent de déterrer un vieux sujet.

Au lieu de déterrer un sujet il est préférable :

  • soit de contacter directement le membre voulu par messagerie privée en cliquant sur son pseudonyme pour accéder à sa page profil, puis sur le lien "Ecrire un message"
  • soit de créer un nouveau sujet décrivant votre propre contexte
  • ne pas répondre à un déterrage et le signaler à la modération

Liens conseillés

Je ferme ici.

  • Partager sur Facebook
  • Partager sur Twitter