Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

#include<iostream>
using namespace std;
int main()
{
int i=0,j=0,metritis=0;
int n, m, nozera, nozerb, nozerc, counter=0;
int *rowa, *columna, *rowb, *columnb;

double x, z;
double *elementsa, *elementsb;
// διάβασε συντεταγμένες και για τους δύο πίνακες Α και Β
cout<<"give tha number of rows";
cin>>n;
cout<<"give tha number of columns";
cin>>m;

// ο χρήστης δίνει το πλήθος τον μη μηδενικών στοιχείων
// για τον πίνακα Α


cout<<"give the number of no zero elements in array A";
cin>>nozera;

//ο χρήστης δίνει το πλήθος των μη μηδενικών στοιχείων για τον
//πίνακα Β
cout<<"give the number of no zero elements in array B";
cin>>nozerb;

rowa = new int(nozera);
columna = new int(nozera);
elementsa = new double(nozera);

rowb = new int(nozerb);
columnb = new int(nozerb);
elementsb = new double(nozerb);
//για τον πίνακα Α η δημιουργία των 3 μονοδιάστατων πινάκων
for (int i=0;i<n;i++)
    {
    for(int j=0;j<m;j++)
        {
        cout<<"give tha value of element A["<<i<<"]["<<j<<"]";
        cin>>x;
        if (x!=0)
            {
                rowa[counter]=i;
                columna[counter]=j;
                elementsa[counter]=x;
                counter++;
            }


        }
    }



//Για τον πίνακα Β η δημιουργία των 3 μονοδιάστατων πινάκων

counter=0;

for (int i=0; i<n ;i++)
    {
    for(int j=0; j<m; j++)
        {
        cout<<"give the value of element B["<<i<<"]["<<j<<"]";
        cin>>z;
            if (z!=0)
                {
                    rowb[counter]=i;
                    columnb[counter]=j;
                    elementsb[counter]=z;
                    counter++;
                }



        }
    }
//Μέσα από αυτή την επανάληψη βρίσκουμε το μέγεθος
//του πίνακα που θα βάλουμε το άθροισμα
metritis=0;

while((i < nozera) && (j < nozerb))
    {
    if(rowa <  rowb[j])
        {
        i++;
        }
    else if (rowa == rowb[j])
        {
            if(columna == columnb[j])
                {
                    metritis++;
                    i++;
                    j++;
                }
            else if(columna<columnb[j])
                {
                    i++;
                }
            else
                {
                    j++;
                }

        }
    else
    {
        j++;
    }

}

nozerc = (nozera+nozerb-metritis);

//Εδώ κάνουμε την πρόσθεση των στοιχείων που πρέπει και την καταχωρούμε στο πίνακα
int *rowc, *columnc;
double *finalelement;

rowc = new int(nozerc);
columnc = new int(nozerc);
finalelement = new double(nozerc);

int l=0;
j=0;
i=0;
while((i < nozera) && (j < nozerb))
{
if(rowa<rowb[j])
    {
    i++;
    }
else if (rowa == rowb[j])
{
    if(columna == columnb[j])
        {
        finalelement[l]=elementsa+elementsb[j];
        rowc[l]=rowa;
        columnc[l]=columna[j];
        i++;
        j++;
        l++;
        }
     else if(columna<columnb[j])
        {
            finalelement[l]=elementsa;
            rowc[l]=rowa;
            columnc[l]=columna[j];
            l++;
            i++;
        }
      else
        {
        finalelement[l]=elementsb[j];
        rowc[l]=rowb[j];
        columnc[l]=columnb[j];
        l++;
        j++;
        }
}
else
    {
    j++;
    }
}
metritis=0;
for(i=0;i<n;i++)
    {
        cout<<endl;

        for(j=0;j<m;j++)
            {
                if(i=rowc)
                {
                    if(j=columnc[j])
                        {
                            cout<<finalelement[metritis];
                            metritis++;
                            cout<<"";
                        }
                    else
                        {
                        cout<<"0";
                        }
                }
              else
              {
                  cout<<"0";
                  cout<<"";
              }
            }

    }
return 0;
}
 

#include<iostream>
using namespace std;
int main()
{
int i=0,j=0,metritis=0;
int n, m, nozera, nozerb, nozerc, counter=0;
int *rowa, *columna, *rowb, *columnb;

double x, z;
double *elementsa, *elementsb;
// διάβασε συντεταγμένες και για τους δύο πίνακες Α και Β
cout<<"give tha number of rows";
cin>>n;
cout<<"give tha number of columns";
cin>>m;

// ο χρήστης δίνει το πλήθος τον μη μηδενικών στοιχείων
// για τον πίνακα Α


cout<<"give the number of no zero elements in array A";
cin>>nozera;

//ο χρήστης δίνει το πλήθος των μη μηδενικών στοιχείων για τον
//πίνακα Β
cout<<"give the number of no zero elements in array B";
cin>>nozerb;

rowa = new int(nozera);
columna = new int(nozera);
elementsa = new double(nozera);

rowb = new int(nozerb);
columnb = new int(nozerb);
elementsb = new double(nozerb);
//για τον πίνακα Α η δημιουργία των 3 μονοδιάστατων πινάκων
for (int i=0;i<n;i++)
    {
    for(int j=0;j<m;j++)
        {
        cout<<"give tha value of element A["<<i<<"]["<<j<<"]";
        cin>>x;
        if (x!=0)
            {
                rowa[counter]=i;
                columna[counter]=j;
                elementsa[counter]=x;
                counter++;
            }


        }
    }



//Για τον πίνακα Β η δημιουργία των 3 μονοδιάστατων πινάκων

counter=0;

for (int i=0; i<n ;i++)
    {
    for(int j=0; j<m; j++)
        {
        cout<<"give the value of element B["<<i<<"]["<<j<<"]";
        cin>>z;
            if (z!=0)
                {
                    rowb[counter]=i;
                    columnb[counter]=j;
                    elementsb[counter]=z;
                    counter++;
                }



        }
    }
//Μέσα από αυτή την επανάληψη βρίσκουμε το μέγεθος
//του πίνακα που θα βάλουμε το άθροισμα
metritis=0;

while((i < nozera) && (j < nozerb))
    {
    if(rowa <  rowb[j])
        {
        i++;
        }
    else if (rowa == rowb[j])
        {
            if(columna == columnb[j])
                {
                    metritis++;
                    i++;
                    j++;
                }
            else if(columna<columnb[j])
                {
                    i++;
                }
            else
                {
                    j++;
                }

        }
    else
    {
        j++;
    }

}

nozerc = (nozera+nozerb-metritis);

//Εδώ κάνουμε την πρόσθεση των στοιχείων που πρέπει και την καταχωρούμε στο πίνακα
int *rowc, *columnc;
double *finalelement;

rowc = new int(nozerc);
columnc = new int(nozerc);
finalelement = new double(nozerc);

int l=0;
j=0;
i=0;
while((i < nozera) && (j < nozerb))
{
if(rowa<rowb[j])
    {
    i++;
    }
else if (rowa == rowb[j])
{
    if(columna == columnb[j])
        {
        finalelement[l]=elementsa+elementsb[j];
        rowc[l]=rowa;
        columnc[l]=columna[j];
        i++;
        j++;
        l++;
        }
     else if(columna<columnb[j])
        {
            finalelement[l]=elementsa;
            rowc[l]=rowa;
            columnc[l]=columna[j];
            l++;
            i++;
        }
      else
        {
        finalelement[l]=elementsb[j];
        rowc[l]=rowb[j];
        columnc[l]=columnb[j];
        l++;
        j++;
        }
}
else
    {
    j++;
    }
}
metritis=0;
for(i=0;i<n;i++)
    {
        cout<<endl;

        for(j=0;j<m;j++)
            {
                if(i=rowc)
                {
                    if(j=columnc[j])
                        {
                            cout<<finalelement[metritis];
                            metritis++;
                            cout<<"";
                        }
                    else
                        {
                        cout<<"0";
                        }
                }
              else
              {
                  cout<<"0";
                  cout<<"";
              }
            }

    }
return 0;
}
 

 

όταν τρέχω το πρόγραμμα στην φόρτωση του δεύτερου πίνακα κρασάρη στην εισάγωγη του τρίτου στοιχείου ....

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...