C++ Macierze

SzymasJ86
Użytkownik
Użytkownik
Posty: 7
Rejestracja: 12 maja 2009, o 07:30
Płeć: Mężczyzna
Podziękował: 2 razy

C++ Macierze

Post autor: SzymasJ86 »

Witam jestem tutaj nowy na forum i od razu zwracam się z wielką prośbą, a mianowicie potrzebuje programu w języku C++, który będzie:

SUMOWAŁ WIERSZE W MACIERZY ORAZ WYZERUJE NAJWIĘKSZĄ SUMĘ

Dodam tylko że tabela macierzy ma wynosić 5x4

Z góry dziękuje za pomoc a ten kto pierwszy mi pomoże ma plusa
Tomcat
Użytkownik
Użytkownik
Posty: 327
Rejestracja: 23 mar 2009, o 21:51
Płeć: Mężczyzna
Lokalizacja: Świdnica
Podziękował: 10 razy
Pomógł: 62 razy

C++ Macierze

Post autor: Tomcat »

Oczekujesz gotowego kodu czy porady? Ja na początek opisze jak ja bym to zrobił. Skoro mamy macierz o okreslonej wielkości to implementujemy ją jako tablicę dwuwymiarową. Potem Sumujemy wiersze, zapisując każdy wynik do tablicy 5elementowej. Potem znajdujemy największy element tej tablicy i korzystając z jego indeksu usuwamy (zerujemy) ten n-ty wiersz macierzy. Fajne zadanko tak btw
SzymasJ86
Użytkownik
Użytkownik
Posty: 7
Rejestracja: 12 maja 2009, o 07:30
Płeć: Mężczyzna
Podziękował: 2 razy

C++ Macierze

Post autor: SzymasJ86 »

Powiem tak nic a nic nie umiem języka C++ także szczerze myślałem, że otrzymam chociaż polowę zadania gotowego a drugą połowę już bym jakoś wykombinował. Proszę o pomoc bo będe miał semestr w plecy
Tomcat
Użytkownik
Użytkownik
Posty: 327
Rejestracja: 23 mar 2009, o 21:51
Płeć: Mężczyzna
Lokalizacja: Świdnica
Podziękował: 10 razy
Pomógł: 62 razy

C++ Macierze

Post autor: Tomcat »

Trzeba było pomyśleć gdzie sie idzie na studia postaram sie pomóc, tylko napisz mi czy to użytkownik podaje macierz, czy ma być skądś wczytywana czy po prostu na stałe zaimplementowana?
SzymasJ86
Użytkownik
Użytkownik
Posty: 7
Rejestracja: 12 maja 2009, o 07:30
Płeć: Mężczyzna
Podziękował: 2 razy

C++ Macierze

Post autor: SzymasJ86 »

Użytkownik ma podawać macierz
Tomcat
Użytkownik
Użytkownik
Posty: 327
Rejestracja: 23 mar 2009, o 21:51
Płeć: Mężczyzna
Lokalizacja: Świdnica
Podziękował: 10 razy
Pomógł: 62 razy

C++ Macierze

Post autor: Tomcat »

W jaki sposób? Sprecyzuj dokładnie input, napisanie tego kodu to błahostka -- 12 maja 2009, o 22:44 --Jakbyś już bardzo potrzebował to tu masz :

Kod: Zaznacz cały

#include <iostream>

using namespace std;

int matrix[5][4];

void printMatrix()
{
	for(int i = 0; i < 5; i++)
	{
		for(int j = 0; j < 4; j++)
		{
			cout << matrix[i][j] << " ";
		}
		cout << endl;
	}
}

int main()
{
	int partSum[5] = {0};
	for(int i = 0; i < 5; i++)
	{
		for(int j = 0; j < 4; j++)
		{
			cout << "Prosze podac " << ++j << " liczbe " << ++i << " wiersza: ";
			--i; --j;
			cin >> matrix[i][j];
			partSum[i] += matrix[i][j];
		}
	}
	
	cout << endl << endl;
	printMatrix();
	
	unsigned int max = 0;
	for(int i = 1; i < 5; i++)
	{
		if(partSum[i] > partSum[max])
			max = i;
	}
	
	for(int i = 0; i < 4; i++)
	{
		matrix[max][i] = 0;
	}
	
	cout << endl << endl;
	printMatrix();
	
	return 0;
}
10 minut pisania i delikatnych poprawek żeby to jakoś wyglądało mam nadzieje, że na moich studiach będą dawać trudniejsze zadania
SzymasJ86
Użytkownik
Użytkownik
Posty: 7
Rejestracja: 12 maja 2009, o 07:30
Płeć: Mężczyzna
Podziękował: 2 razy

C++ Macierze

Post autor: SzymasJ86 »

ok działa ale to mi nic nie liczy tylko każe wpisywać liczby może ja coś źle robię?
Tomcat
Użytkownik
Użytkownik
Posty: 327
Rejestracja: 23 mar 2009, o 21:51
Płeć: Mężczyzna
Lokalizacja: Świdnica
Podziękował: 10 razy
Pomógł: 62 razy

C++ Macierze

Post autor: Tomcat »

Tzn co jest nie tak, mój kod?
SzymasJ86
Użytkownik
Użytkownik
Posty: 7
Rejestracja: 12 maja 2009, o 07:30
Płeć: Mężczyzna
Podziękował: 2 razy

C++ Macierze

Post autor: SzymasJ86 »

no wpisuje wszystkie liczby a jak wpisze ostatnią i kliknę "ENTER" to mi sie programik automatycznie zamyka
Tomcat
Użytkownik
Użytkownik
Posty: 327
Rejestracja: 23 mar 2009, o 21:51
Płeć: Mężczyzna
Lokalizacja: Świdnica
Podziękował: 10 razy
Pomógł: 62 razy

C++ Macierze

Post autor: Tomcat »

Ajajaj... zapomniałem dodaj na początku #include <conio.h> a potem przed return 0 getch();
SzymasJ86
Użytkownik
Użytkownik
Posty: 7
Rejestracja: 12 maja 2009, o 07:30
Płeć: Mężczyzna
Podziękował: 2 razy

C++ Macierze

Post autor: SzymasJ86 »

Czyli prawidłowy kod ma wyglądać tak?

Kod: Zaznacz cały

#include <iostream>
#include <canhio.h>
using namespace std;

int matrix[5][4];

void printMatrix()
{
   for(int i = 0; i < 5; i++)
   {
      for(int j = 0; j < 4; j++)
      {
         cout << matrix[i][j] << " ";
      }
      cout << endl;
   }
}

int main()
{
   int partSum[5] = {0};
   for(int i = 0; i < 5; i++)
   {
      for(int j = 0; j < 4; j++)
      {
         cout << "Prosze podac " << ++j << " liczbe " << ++i << " wiersza: ";
         --i; --j;
         cin >> matrix[i][j];
         partSum[i] += matrix[i][j];
      }
   }
   
   cout << endl << endl;
   printMatrix();
   
   unsigned int max = 0;
   for(int i = 1; i < 5; i++)
   {
      if(partSum[i] > partSum[max])
         max = i;
   }
   
   for(int i = 0; i < 4; i++)
   {
      matrix[max][i] = 0;
   }
   
   cout << endl << endl;
   printMatrix();
   
   getch()
   
   return 0;
}
matshadow
Użytkownik
Użytkownik
Posty: 941
Rejestracja: 17 gru 2007, o 21:48
Płeć: Mężczyzna
Lokalizacja: Kingdom Hearts
Podziękował: 6 razy
Pomógł: 222 razy

C++ Macierze

Post autor: matshadow »

Kod: Zaznacz cały

#include <conio.h>
a nie

Kod: Zaznacz cały

#include <canhio.h>

Poza tym możesz użyć system("pause"); przed return 0; bez importowania conio.h, czyli

Kod: Zaznacz cały

#include <iostream>
using namespace std;

int matrix[5][4];

void printMatrix()
{
   for(int i = 0; i < 5; i++)
   {
      for(int j = 0; j < 4; j++)
      {
         cout << matrix[i][j] << " ";
      }
      cout << endl;
   }
}

int main()
{
   int partSum[5] = {0};
   for(int i = 0; i < 5; i++)
   {
      for(int j = 0; j < 4; j++)
      {
         cout << "Prosze podac " << ++j << " liczbe " << ++i << " wiersza: ";
         --i; --j;
         cin >> matrix[i][j];
         partSum[i] += matrix[i][j];
      }
   }
   
   cout << endl << endl;
   printMatrix();
   
   unsigned int max = 0;
   for(int i = 1; i < 5; i++)
   {
      if(partSum[i] > partSum[max])
         max = i;
   }
   
   for(int i = 0; i < 4; i++)
   {
      matrix[max][i] = 0;
   }
   
   cout << endl << endl;
   printMatrix();
   
   system("pause");
   
   return 0;
}
SzymasJ86
Użytkownik
Użytkownik
Posty: 7
Rejestracja: 12 maja 2009, o 07:30
Płeć: Mężczyzna
Podziękował: 2 razy

C++ Macierze

Post autor: SzymasJ86 »

Wszytko działa!! DZIĘKUJE CI BARDZO i oczywiście masz u mnie wielkiego plusa
ODPOWIEDZ