Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C++ Discussion :

Initialise les tableaux


Sujet :

C++

  1. #1
    Candidat au Club
    Initialise les tableaux
    Bonjour j'ai un petit problème avec mon programme il ne reconnaît le getline et en plus on me dit que ma valeur a n'est pas une fonction. Je sais qu'on peut aussi utiliser un <vector> push_back mais je ne sais pas comment l'utiliser. S'ils vous plait aider moi.

    Proposer un programme qui:
    1.Initialise les tableaux (taille donnée par l’utilisateur) des noms des accessoires et des prix
    2.Demande à l’utilisateur les nom et prix HT de chaque accessoire ; le nom et le prix seront stockés dans les tableaux
    3.Affiche les noms et prixHT des accessoires à l’aide des deux tableaux (boucle for)
    4.Affiche la somme totale des achats

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    #include <iostream>
    #include <string>
     
    using namespace std;
     
    int main()
    {
        int a;
        int i;
        a = 0;
        i = 0;
     
        std::cout << "Bonjour vous avez besoin de combient d'article: ";
        cin >> a;                                 // demande le nombre de colone des tableaux 
     
        double prix_HT[a];                            // définitions du tableau des prix 
        std::string added_accessory[a];                        // définitions du tableau des options
     
        std::cout << "donner l'article ajouter puis le prix qui vas avec(le prix de l'article ajouter)" << endl;
     
        for (i; i < a; i++)
        {
            cin.clear();   //permet de vider le buffer de cin
            cin.ignore(20000, '\n');
            cout << "added_accessory num " << i + 1 << " : ";
            std::cin.getline(cin, added_accessory[i]);                           // permet de prendre tout le string avec les espaces !
            std::cout << "prix_HT_num" << i + 1 << " : ";
            cin >> prix_HT[i];
     
        }
        double sum = 0;
        for (int i = 0; i < a; i++)                            // permet d'afficher les tableaux avec les options et les prix rentré par l'utilisateur  
        {
            sum = sum + prix_HT[i];
            std::cout << added_accessory[i];
            std::cout << " " << prix_HT[i] << " $ " << endl;
        }
     
        std::cout << "la somme des prix de vos added_accessory : " << sum << " $ ";
     
     
        //QUESTION 4:_____________________________________________________________________________________________________________________________________________________________________________________
        double prix_HT_Moy = sum / a;
        double prixHT_Min = prix_HT[0];
        int indice_Min = 0;
        double prixHT_Max = prix_HT[0];
        int indice_Max = 0;
     
        for (int i = 0; i < a; ++i)
        {
            if (prixHT_Min > prix_HT[i])
            {
                prixHT_Min = prix_HT[i];
                indice_Min = i;
            }
        }
     
        for (int i = 0; i < a; ++i)
        {
            if (prixHT_Max < prix_HT[i])
            {
                prixHT_Max = prix_HT[i];
                indice_Max = i;
            }
        }
        cout << "la somme des prix des added_accessory : " << sum << "$" << endl;
        cout << "le prix le plus petit est " << prixHT_Min << " pour les article ajoutes : " << added_accessory[indice_Min] << endl;
        cout << "le prix le plus grand est " << prixHT_Max << " pour les articles ajoutes : " << added_accessory[indice_Max] << endl;
        cout << "le prix moyen est : " << prix_HT_Moy << endl;
    }

  2. #2
    Rédacteur/Modérateur

    - using namespace en global est à bannir
    - les VLA sont strictement interdits en C++
    - les tableaux en C++ sont std::vector ou std::array
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  3. #3
    Expert confirmé
    Bonjour,

    Tu poses des questions, tu fournis un énoncé et un programme.
    Le problème est que le programme ne correspond pas à l'énoncé (il fait des choses en plus), et ne correspond non plus à tes questions. Il te faut préciser pour que nous puissions te répondre.

    Le programme utilise des VLA qui sont interdites en C++. Pour utiliser les tableaux du C++, il suffit d'ajouter au début du code une ligne #include <vector> et de remplacer les lignes 16 et 17 par :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
        std::vector<double>  prix_HT(a);                // définition du tableau des prix 
        std::vector<std::string>  added_accessory(a);   // définition du tableau des options

    Le commentaire ligne 23 est faux, std::cin::clear() n'efface pas du tout le buffer.

  4. #4
    Candidat au Club
    Stp peux-tu m’aider à corriger mon programme ?
    Stp peux-tu m’aider à corriger le programme. Merci bien

###raw>template_hook.ano_emploi###