Σύγκριση δύο πινάκων στη 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; }
σχολιασμοί, εξωτερικοί σύνδεσμοι, βοήθεια, ψηφοφορίες, αρχεία, κτλ.
Εκπαιδευτικό υλικό από τον
Αθανάσιο Σταυρακούδη
σας παρέχετε κάτω από την άδεια
Creative Commons Attribution-NonCommercial-ShareAlike 4.0 License.
Σας παρακαλώ να ενημερωθείτε για κάποιους επιπλέον περιορισμούς
http://stavrakoudis.econ.uoi.gr/stavrakoudis/?iid=401.