Tablica dwuwymiarowa

0

Witam!

Mam za zadanie napisac program, ktory wyszukuje w wierszu macierzy najwieksza liczbe a nastepnie tworzy z tych liczb wektor.
Zrobilem taki o to programik i dziala, jezeli wpiszemy np. macierz 3 na 3, a wartosci podamy w kolejnosc 1,2,3,4,5,6,7,8,9. Jak podamy juz 9,8,7,6,5,4,3,2,1 - niestety pokazuje jakies glupoty.

Nie wiem czemu, jezeli ktos bylby w stanie pomoc, bylbym wdzieczny. :)

 
#include <iostream>
using namespace std;

int main()

{
	int i,j,m,n;
	
	float max;
	const int mmax = 100; const int nmax = 100;
	float A[mmax][nmax];
	float B[mmax];
	
	cout << "Prosze podac ilosc wierszy macierzy (m<=" << mmax << "):" << endl;
	cin >> m;
	cout << "Prosze podac ilosc kolumn macierzy (n<=" << nmax << "):" << endl;
	cin >> n;
	
	for(i=0;i<m;i++)
	for(j=0;j<n;j++)
	{
		cout << "Prosze podac element [" << i+1 << "][" << j+1 << "]:" << endl;
		cin >> A[i][j];
	}
	
	for(i=0;i<m;i++)
	{
		max = A[i][0];
		for(j=1;j<n;j++)
		{
			if(A[i][j] > max)
			{
			
				max = A[i][j];
				B[i] = max;
			}
			
		}
		
	}
	
	cout << "Najwieksze wartosci z poszczegolnych wierszy macierzy to:" << endl;
	
	for(i=0;i<m;i++)
	{
		cout << B[i] << "   ";
	}
}

0
  1. Dziekuje :)
  2. Jedyna rzecza jaka zmieniles to chyba, usuniecie max i wstawienie za to Od razu B[i] - teraz, czy mógłbyś mi wyjasnic dlaczego tak? Bo wedlug mnie to powinno wyjsc na to samo a jednak dziala Twoj sposob a moj nie, a chcialbym to jeszcze zrozumiec :)
0

można tez wiersz: B[i] = max;
przenieść dwie klamry niżej.

Wykonywałeś B[i] = max; tylko wewnątrz if'a
W przypadku kiedy na max'a trafiasz w pierwszej kolumnie nic nie wpisywałeś w B[i]

0

No jasne!

Dziekuje! :)

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