Zdravíčko, jsem začátečník a řeším školní projekt. Mám definované dvourozměrné pole 12x16 s číselnými hodnotami.
Mám vypsat průměry z jednotlivých řádků a sloupců, jenže nějak nemám tušení jak. Prosím Vás o radu
Máš udělat aritmetický průměr každého řádku a vyspat ho, potom totéž se sloupci. Takže sečtu prvky prvního řádku a podělím počtem prvků. Výsledek vypíšu. Opakuji pro ostatní řádky. Pak sečtu prvky prvního sloupce a podělím počtem prvků. Výsledek vypíšu. Opakuji pro zbylé sloupce. Rozměry pole a tím i počty prvků v řádcích a sloupcích jsou dány pevně, to usnadňuje řešení.
Na první pohled to vypadá na vnořené cykly for.
hu
Začni od nejjednoduššího: napiš deklaraci pole čísel o rozměrech 12x16. Pak zkus napsat deklaraci pole stejných vlastností s inicializací prvků. V zadání není zmínka o tom, jaká čísla to budou. Předpokládej reálná čísla.
hu
#1 dry92
co třeba takhle?
const int ROWS = 2;
const int COLS = 2;
int matrix[ROWS][COLS] = {
{ 1, 4 },
{ 2, 1}
};
double rows_avg[ROWS];
double cols_avg[COLS];
int cols_sums[COLS] = { 0, 0 };
for(int i = 0; i < ROWS; i++)
{
double row_avg = 0;
for(int j = 0; j < COLS; j++)
{
row_avg += matrix[i][j];
cols_sums[j] += matrix[i][j];
if(i == ROWS - 1) {
cols_avg[j] = double(cols_sums[j]) / ROWS;
}
}
rows_avg[i] = row_avg / COLS;
}
// print
std::cout << "Prumery radku: ";
for (int i = 0; i < ROWS; ++i)
{
std::cout << rows_avg[i] << " ";
}
std::cout << std::endl;
std::cout << "Prumery sloupcu: ";
for (int i = 0; i < COLS; ++i)
{
std::cout << cols_avg[i] << " ";
}
std::cout << std::endl;
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku