Aller au contenu

Discussion:Exercices en langage C++/Structures de contrôle

Le contenu de la page n’est pas pris en charge dans d’autres langues.
Ajouter un sujet
Un livre de Wikilivres.
Dernier commentaire : il y a 10 ans par Denisdez dans le sujet Exercice 18

salut! je pense que l'exercice 10 présente un erreur car on commence toujours par x=0 ce qui n'est pas vrai car il faut donnez à l'utilisateur la liberté d'entrer le nombre qu'il veut ensuite on effectue l'opération voulue.... donc je pense que le listing le plus juste et celui là :

  1. include <cstdio>
  2. include <cstdlib>
  3. include <iostream>

using namespace std; int main() {

                 int x=0,choix;

do

   {
   cout<<"entrez un entier "<<endl;
   cin>>x;
   cout<<"1 : Ajouter 1"<<endl;
   cout<<"2 : Multiplier par 2"<<endl;
   cout<<"3 : Soustraire 4"<<endl;
   cout<<"4 : Quitter"<<endl;
   cout<<"Votre choix : ";cin>>choix;
   switch(choix)

{ case 1 : x++;break; case 2: x=x*2; break; case 3: x=x-4;break; } cout<<"Le résultat de l'opération est :"<<x<<endl; }while(choix!=4);

cout<<"La valeur finale de x vaut : "<<x<<endl;



system("pause");          
 
   return 0;

}

La solution correspond bien à l'énoncé. Le but de l'exercice est de faire évoluer la valeur de x (au départ 0) avec différentes opérations. Il n'y a donc aucun intérêt à demander la valeur de x à chaque itération.
De plus system("pause"); est l'une des mauvaises pratiques bannies des livres, car non portable.
-- ◄ David L • discuter ► 1 mai 2009 à 15:04 (CEST)Répondre

Exercice 6 - Initialisation de somme

[modifier le wikicode]

Bonjour, Exercice 6, ne faudrait-il pas initialiser somme à 0 ?

double somme = 0;

Exercice 18

[modifier le wikicode]

Bonjour, la solution de l'exercice est incomplète, il manque une boucle for.

voici une solution :

  1. include <iostream>

using namespace std;

int main() {

   int N=0;
   cout << "Saisissez une valeur pour N: ";
    cin >> N;
   cout << endl;
  for(int y=1;y<=N;y++)
  { 
    cout<<"N= "<<y<<endl;
    for(int i=0;i<y;i++)
     {
           
        for(int j=0;j<(y-i);j++)
         {
          cout<<"*";
         }      
  	 cout<<endl;
     }
  }

return 0; }

cordialement

Denisdez (discussion) 13 septembre 2014 à 18:14 (CEST)DenisdezRépondre

Salut, je pense qu'il y a une erreur au niveau de l'initialisation de i, en effet ici i = 2 lors de sa déclaration, du coup pour N = 1 on a le nombre premier numero 1 (N) est egale a 3(i) alors que le 1er nombre premier devrait être 2. Il faudrait pas conséquent que i soit initialisée à 1 lors de sa déclaration.