Suma elementów w kolumnie tablicy

0

Dana jest macierz n x m(maksymalnie 100 kolumn i 100 wierszy) zawierająca liczby naturalne z zakresu od 0 do 100. Zapisz program obliczający sumę elementów w każdej kolumnie.

Mam tyle, ale to jest chyba kompletnie źle...

#include <math.h>
#include <iostream>
#include <stdio.h>
#include <cmath>
#include <ctime>
#include <cstdlib>
#include <fstream>

using namespace std;

int main(){
    srand(time(NULL));
    int macierz [100][100];
    int n,m;

    cout<<"Podaj wielkosc tablicy"<<endl;
    cin>>n;
    cin>>m;

    for(int i=0;i<n;i++){
        int suma=0;
        for(int j=0;j<m;j++){
            macierz[i][j]=rand();
            suma=suma+macierz[i][j];
        }
    cout<<"Suma w "<<i+1<<" w kolumnie "<< suma/m<<endl;

    }

    getchar();
    return 0;
}

Takie mam zadanie i kompletnie nie wiem jak to zrobić. Proszę o szybką pomoc, bo mam to do 11:30 wysłać nauczycielowi.

zamiana znacznika <code> na <code class="cpp"> - @furious programming

0

Skąd pobierana jest ta tablica? To co teraz masz to UB, a w praktyce odczytywanie śmieci z pamięci losowe wartości z zakresu [0, RAND_MAX], a nie [0,100]

0

Dlaczego dzielisz suma przez m?

0

To jest tablica do obliczania średniej, przynajmniej takie miała zastosowanie, próbowałem coś pozmieniać, ale jak widać nic to nie dało... Można prosić o pomoc?

0

bez sensu inkludujesz cmath i math.h - to jedno i to samo (no prawie).
@kq Tablica uzupełniana jest przy sumowaniu - trochę tak nieelegancko i nie uniwersalnie - ale nawet zadziała :P

0

Patrząc w dokumetację dla rand miałbyś już prawie gotowiec jak zdefiniować losowanie zakresu.

v2 = rand() % 100 + 1;     // v2 in the range 1 to 100

Usuń też to dzielenie przez m przy wypisywaniu sumy
EDIT:
żeby mieć zakres od 0 do 100:

rand() % 101
2

Bez sensu z tym rand(), no ale...

for(int j = 0; j < m; ++j){
    int suma=0;
    for(int i = 0; i < n; ++i){
        macierz[i][j]=rand() % 101;
        suma = suma + macierz[i][j];
    }
    cout<<"Suma w "<<j+1<<" w kolumnie "<< suma<<endl;
}
0

Chyba troszkę za duże te sumy wychodzą - ponad 120 w każdej. :o

@E: Albo w sumie, dobrze, dzięki wielkie! Chyba działa. :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0