Η ώρα είναι:

Αντιγραφή υπό συνθήκη στοιχείων πίνακα στη C++

Έστω δύο μονοδιάστατοι πίνακες ακεραίων.

Να δημιουργηθεί τρίτος πίνακας που περιέχει σε κάθε θέση τη μεγαλύτερη τιμή από τις αντίστοιχες θέσεις των δύο άλλων πινάκων. Πχ αν a[0]=1, b[0]=2 τότε c[0]=2, κτλ, κτλ.

Δείτε ένα παράδειγμα με πίνακες 5 θέσεων.

Οι 4 βρόγχοι for δίνονται για την αναλυτική επεξήγηση της άσκησης. Στην πραγματικότητα μπορούν να συμπτυχθούν σε 3, ή σε 2 ή ακόμα και σε ένα μόνο βρόγχο. Προσπαθήστε το!

#include <iostream>

using namespace std;

#define N 5

int main()
{
    int a[N], b[N], c[N];
    int i;
    
    cout << "first array:" << endl; 
    for (i=0; i < N; i++)
    {
        cin >> a[i];
    }
    
    cout << "second array:" << endl; 
    for (i=0; i < N; i++)
    {
        cin >> b[i];
    }
    
    cout << "filling final array:" << endl;
    for (i=0; i < N; i++)
    {
        if (a[i] > b[i])
        {
            c[i] = a[i];
        }
        else
        {
            c[i] = b[i];
        }
    }
    
    cout << "printing final array:" << endl;
    for (i=0; i < N; i++)
    {
        cout << c[i] << endl;
    }
    
    return 0;
}

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

astavrak@apollonia:~$ g++ program.cpp
astavrak@apollonia:~$ ./a.out 
first array:
3
4
5
4
3
second array:
11
22
33
1
1
printing final array:
11
22
33
4
3

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

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