Σύγκριση δύο πινάκων στη C++

Δίνονται δύο πίνακες ακεραίων a,b, με ίσο πλήθος στοιχείων. Τα στοιχεία των πινάκων εισάγονται από τον χρήστη κατά την εκτέλεση του προγράμματος.

Να γραφεί ένα πρόγραμμα που να συγκρίνει τα στοιχεία των δύο πινάκων και να εξάγει το πόσες φορές οι τιμές του a είναι μεγαλύτερες των αντίστοιχων τιμών του b. Επίσης πόσες φορές οι τιμές του b είναι μεγαλύτερες των αντίστοιχων τιμών του a.

Δίνεται μια ενδεικτική λύση:

#include <iostream>

#define NMAX 1000

using namespace std;

int main()
{
    int a[NMAX];
    int b[NMAX];
    int i = 0;

    int ka = 0; // απαριθμητές
    int kb = 0; 
 
    // προαιρετικά ένα μήνυμα στο χρήστη
    cout << "Δώσε δύο αριθμούς ανά γραμμή μέχρι CTRL+D " << endl; 
    // Ένας βρόγχος είναι αρκετός
    while (cin >> a[i] && cin >> b[i]) 
    {
        if (a[i] > b[i]) 
        {
          ++ka;
        }
        if (b[i] > a[i]) 
        {
          ++kb;
        }
        ++i;
    } 

    cout << endl;
    cout << ka << " φορές μεγαλύτερο το a" << endl;
    cout << kb << " φορές μεγαλύτερο το b" << endl;

    return 0;
}

Μεταγλώττιση και δοκιμαστική εκτέλεση:

astavrak@aris:~$ g++ program.cpp
astavrak@aris:~$ ./a.out 
Δώσε δύο αριθμούς ανά γραμμή μέχρι CTRL+D 
4 5
1 7
9 8
9 6 
7 4

3 φορές μεγαλύτερο το a
2 φορές μεγαλύτερο το b

Οι απαριθμητές μπορούν να γραφούν πιο σύντομα ως:

while (cin >> a[i] && cin >> b[i]) 
{
    if (a[i] > b[i]) ++ka;
    if (b[i] > a[i]) ++kb;
    ++i;
}

Συνδεθείτε για περισσότερες δυνατότητες αλληλεπίδρασης,
σχολιασμοί, εξωτερικοί σύνδεσμοι, βοήθεια, ψηφοφορίες, αρχεία, κτλ.

Αναζήτηση στο google.com για παρόμοια θέματα

Creative Commons License
Εκπαιδευτικό υλικό από τον Αθανάσιο Σταυρακούδη σας παρέχετε κάτω από την άδεια Creative Commons Attribution-NonCommercial-ShareAlike 4.0 License.
Σας παρακαλώ να ενημερωθείτε για κάποιους επιπλέον περιορισμούς
http://stavrakoudis.econ.uoi.gr/stavrakoudis/?iid=401.