All pastes #445196 Raw Edit

Unnamed

public text v1 · immutable
·published 2007-04-17 19:18 UTC
rendered paste body
/******************************************************************** 
* Tehtävä 3.2
* Viime viikon tehtävä 2.1 siten, että ohjelma kysyy ensin, montako 
* riviä ja saraketta luetaan ja luo jokaisen taulukkon rivin dynaamisesti 
* new-muuttujalla ennen kyseisen rivin lukemista, sekä tulostamisen 
* jälkeen vapauttaa varatun muistin.
* 
* Tehtävä 2.1
* Tee ohjelma, joka lukee 5x5-taulukkoon kokonaisluvut ja laskee 
* niistä summat riveittäin ja sarakkeittain sekä rivisummien summan 
* (joka on samalla sarakesummien summa) ja tulostaa lasketut summat
********************************************************************/

#include <iostream>
#include <string>
using namespace std;

int main (int argc, char * const argv[])
{
	cout << "Montako riviä ja saraketta luetaan? Anna rivien lukumäärä..." << endl;
	int rivit;
	int sarakkeet;
	cin >> rivit;
	rivit++; 
	cout << "Anna sarakkeiden lukumäärä..." << endl;
	cin >> sarakkeet;
	sarakkeet++;
	
	cout << "Sarakkeet ja rivit luettu." << endl;
	
	int **taulukko = new int * [rivit];
	int rivisumma = 0;
	int sarakesumma = 0;
	int x = 0; int y = 0;
	
	srand(time(NULL));
	
	cout << "Tästä alkaa taulukon täyttäminen" << endl;
	
	// Täytetään taulukko ja lasketaan samalla rivisummaa
	for (y = 0; y < rivit - 1; y++)
	{
		taulukko[x] = new int[sarakkeet];
		for (x = 0; x < sarakkeet - 1; x++)
		{
			cout << "Sarakkeet ja rivit asetettu" << endl;
			int luku = rand() % 100;
			taulukko[x][y] = luku;
			// Lasketaan rivisummaa samalla kun täytetään
			rivisumma = rivisumma + taulukko[x][y];
			cout << "Rivisumma " << rivisumma << endl;
			cout << "taulu" << x << "" << y << ":" << taulukko[x][y] << endl;
		}
		// Sijoitetaan rivisumma rivin viimeiseen soluun, kun muut solut ovat täynnä
		cout << "rivisummasolu:" << taulukko[sarakkeet -1][y] << endl;
		taulukko[sarakkeet -1][y] = rivisumma;
		rivisumma = 0;
	}
	
	cout << "Taulukko täytetty." << endl;
	
	// Sarakesumma. Tällä kertaa lasketaan rivisummatkin yhteen.
	for (x = 0; x < sarakkeet; x++)
	{
		for (y = 0; y < rivit - 1; y++)
		{
			sarakesumma = sarakesumma + taulukko[x][y];
		}
		taulukko[x][rivit - 1] = sarakesumma;
		sarakesumma = 0;
	}
	
	cout << "Sarakesummat ja rivisummat laskettu." << endl;
	
	// Ja rintataan vielä koko roska
	for (y = 0; y < rivit; y++)
	{
		for (x = 0; x < sarakkeet; x++)
		{
			cout << taulukko[x][y] << " | ";
		}
//		delete [] taulukko[y];
		cout <<endl;
	}
//	delete [] taulukko;
//	taulukko = NULL;
	
	return 0;
}