Suma elementów w kolumnie tablicy

Suma elementów w kolumnie tablicy
TB
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 7
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...

Kopiuj
#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

kq
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Szczecin
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]

Sarrus
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2512
0

Dlaczego dzielisz suma przez m?

TB
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 7
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?

kaczus
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Łódź
  • Postów: 1403
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

Sarrus
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2512
0

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

Kopiuj
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:

Kopiuj
rand() % 101
twonek
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2500
2

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

Kopiuj
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;
}

TB
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 7
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. :)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.