Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Tablica dwuwymiarowa.

Ostatnio zmodyfikowano 2015-11-23 01:47
Autor Wiadomość
Morksil
Temat założony przez niniejszego użytkownika
Tablica dwuwymiarowa.
» 2015-11-23 01:00:52
Cześć!

Mam problem z poniższym zadaniem:

Tablicę a[N] [N] (N-stała) zawierającą rekordy o polach (x: double, y: char) wypełnić następująco:
- pola liczbowe wylosować jako liczby rzeczywiste z zakresu <D, G> (D, G - stałe)
- do pól znakowych wpisać wartości całkowite wylosowane z zakresu <74, 107> (zamienią się na znaki w zakresie od 'J' do 'k'),
a następnie:
- znaleźć największą wartość spośród pól liczbowych elementów leżących pod główną przekątną tej tablicy.
- zastąpić tą wartością pola liczbowe elementów w tych kolumnach tablicy, w których są co najmniej dwa nawiasy kwadratowe.
Wydrukować tablicę przed i po tej operacji.

Moj kod wyglada nastepująco:

#include<iostream>
#include<cstdlib>
#include<ctime>
using namespace std;
struct Tablica
{
    double x;
    char   y;
};
int main()
{
    srand(time(NULL));
    const int N=5;
    const int D=10;
    const int G=100;
    Tablica A[N][N];
    double max=A[0][0].x;
    int suma_nawiasow=0;
    for(int o=0;o<N;o++)
    {
        for(int j=0;j<N;j++)
        {
        A[o][j].x=(rand()%(G-D+1))+D;
        A[o][j].y=(rand()%(107-74+1))+74;       
        }
    }
    for(int o=0;o<N;o++)
    {
        for(int j=0;j<N;j++)
        {
            cout << A[o][j].x << " " << A[o][j].y << "\t";
        }
        cout << "\n";
    }
    for(int o=0;o<N;o++)
    {
        for(int j=0;j<o;j++)
        {
            if((A[o][j].x)>max)
            {
                max=A[o][j].x;
            }

        }
    }
    cout << "Wartosc max pod glowna przekatna: " << max << endl;
    for(int o=0;o<N;o++)
    {
        for(int j=0;j<N;j++)
        {
           
        }
    }
   
    return 0;
}

Doszedłem do ostatniego podpunktu i się zaciąłem. Nie mam pojęcia jak połączyć fakt, że w kolumnie pojawiają się dwa nawiasy kwadratowe i to prowadzi do zamiany wszystkich pól liczbowych w tej kolumnie na wartość najwieksza spod głównej przekątnej. Bardzo proszę o pomoc i jakieś wskazówki, które pomogą mi rozwiązać to zadanie do końca.[/i]
P-140638
Morksil
Temat założony przez niniejszego użytkownika
Rozwiązanie
» 2015-11-23 01:47:02
Cześć!

Udało mi się rozwiązać to zadanie. Jeśli ktoś w przyszłości będzie potrzebował tego zadania to poniżej umieszczam kod.

Oto kod:

#include<iostream>
#include<cstdlib>
#include<ctime>
using namespace std;
struct Tablica
{
    double x;
    char   y;
};
int main()
{
    srand(time(NULL));
    const int N=5;
    const int D=10;
    const int G=100;
    Tablica A[N][N];
    double max=A[0][0].x;
    int suma_nawiasow=0;
    for(int o=0;o<N;o++)
    {
        for(int j=0;j<N;j++)
        {
        A[o][j].x=(rand()%(G-D+1))+D;
        A[o][j].y=(rand()%(107-74+1))+74;
        }
    }
    for(int o=0;o<N;o++)
    {
        for(int j=0;j<N;j++)
        {
            cout << A[o][j].x << " " << A[o][j].y << "\t";
        }
        cout << "\n";
    }
    for(int o=0;o<N;o++)
    {
        for(int j=0;j<o;j++)
        {
            if((A[o][j].x)>max)
            {
                max=A[o][j].x;
            }

        }
    }
    cout << "Wartosc max pod glowna przekatna: " << max << endl;
    for(int o=0;o<N;o++)
    {
        for(int j=0;j<N;j++)
        {
            if((A[j][o].y=='[') || (A[j][o].y==']'))
            {
                suma_nawiasow++;
            }
            if(suma_nawiasow>=2)
            {
                for(j=0;j<N;j++)
                {
                A[j][o].x=max;
                }
            }

        }
        suma_nawiasow=0;

    }
    for(int o=0;o<N;o++)
    {
        for(int j=0;j<N;j++)
        {
            cout << A[o][j].x << " " << A[o][j].y << "\t";
        }
        cout << "\n";
    }

    return 0;
}

P-140639
« 1 »
  Strona 1 z 1