0
votes

Comparaison entre les tableaux C ++

Je dois développer un code qui compare deux groupes (A & B) de 3 numéros chacun. Si l'un des chiffres est supérieur à l'autre, il reçoit un point, si les deux chiffres sont égaux, aucun des groupes ne reçoit un point.

Le problème que j'ai est que lorsque 2 numéros sont égaux au score du groupe B augmente d'une fois que le groupe de score A n'augmente pas. Lorsque les chiffres sont différents, le programme ajoute correctement les points. P>

Voici le code. P>

#include <iostream>
using namespace std;
int main (){
    int a[3], b[3], totala=0, totalb=0, final[2]{0,0};

        cin >> a[0];
        cin >> a[1];
        cin >> a[2];
        
        cin >> b[0];
        cin >> b[1];
        cin >> b[2]; 

    if (a[0]>b[0]) {
        totala++;
    } else {
        totalb++;
    }
    if (a[1]>b[1]) {
        totala++;
    } else {
        totalb++;
    }
    if (a[2]>b[2]) {
        totala++;
    } else {
        totalb++;
    }
    if (a[0]==b[0]) {
        totala = totala;
        totalb =totalb;
    } else if(a[1]==b[1]) {
        totala = totala;
        totalb =totalb;
    } else if(a[2]==b[2]) {
        totala = totala;
        totalb =totalb;
    }
    
    final[0] = totala;
    final[1] = totalb;

    cout << final[0] << " " << final [1] << endl;

    return 0;
}


0 commentaires

4 Réponses :


0
votes

Ce comportement étrange est dû à des conditions manquantes dans si-...

Donc, si vous soyez à sec, exécutez le code que vous ne vérifiez que la vérification de la plus grande inégalité et si elle n'est pas remplie, augmentez ensuite l'autre variable et qui crée tout le désordre. Au lieu d'incrémenter ces variables dans lesquelles des déclarations modifient avec sinon (moins que l'inégalité), comme vous manipulez des égalités dans des IFS séparées.

FYI -> Essayez de réduire si - d'autre par Nethed Si-d'autre et utilisez pour boucle si la taille du groupe n'est pas corrigée :)


0 commentaires

0
votes

Vous devez vous réorganiser if-ele code> logique.

    if (a[0]>b[0]){
        totala++;
    } else if (a[0]==b[0]){
        // nothing
    } else {
        totalb++;
    }
    // if (a[0]==b[0]) { // do not compare them again


0 commentaires

0
votes

Lorsque deux chiffres sont égaux, tels que a == b , alors aucun d'entre eux n'est supérieur ou inférieur à celui de l'autre, alors lorsque a == B if (a> b) {/ * instruction1 * /} else {/ * instruction2 * /} Exécuter l'instruction2.


0 commentaires

0
votes

Code de travail ci-dessous, d'abord, vous initialisez les sommes avec 0, puis vous iTerez-vous sur les tableaux et vérifiez la condition et incrémentez les sommes en conséquence. Vous devez exécuter ce code sur les deux tableaux après que vous les avez lues à l'aide de CIN. Bonne chance. XXX


0 commentaires