Tablica dwuwymiarowa.
Ostatnio zmodyfikowano 2015-11-23 01:47
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] |
|
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; }
|
|
« 1 » |