wypełnianie tablicy dwuwymiarowej losowe liczby

0

Witam, mam do zrobienia program który ma wypełniać tablice dwuwymiarową [8][8] losowymi liczbami z przedziału 1-20, następnie wypisać największą i najmniejszą wartość.
Mam problem z największą wartością, mógłby ktoś pomóc?

mój kod:

 #include <cstdlib>
    #include <iostream>
    #include <windows.h>
    #include <time.h>
   
    using namespace std;
   
    int main()
   { 
   	srand(time(NULL));
    int tab[8][8];
    int min, max;
    
	for(int i = 0; i < 8; i++)
	{
		for(int j = 0; j < 8; j++)
		{
			tab[i][j] = (rand()% 20);
	
	
				min = max = tab[8][8];
			if(min > tab[i][j])

			min = tab[i][j];



 if(tab[i][j]>max)
    max=tab[i][j];
    
    

    
    
		}
				

}

cout << "Najwieksza liczba to : " << max << endl;

cout << "Najmniejsza wartosc " << min << endl;
	


 

 
		system("PAUSE");
		return 0;
		
		
		
		
		
	}
 
3

weź jakoś to ładnie sformatuj bo nie widać co jest w pętli a co nie... i po co masz to:

min = max = tab[8][8]; 

w pętli?
z tego co widzę to za każdym obrotem pętli ustawiasz min i max na element poza tablicą a potem sprawdzasz czy aktualny jest mniejszy/większy i ustawiasz odpowiednie wartości... napisz to od nowa i przemyśl co piszesz.

0

ok dzieki za pomoc ; )

1

http://4programmers.net/Forum/1135591, do tego inna dystrybucja, std::min i std::max

0
 
#include<iostream> //Wypelnij tablice [8][8] losowymi liczbami 1-20 nastepnie wypisz min, max wartosc
#include <iostream>
#include <windows.h>
#include <time.h>
using namespace std;
 
int main()
{
int tab[8][8], min, max;


for(int i=0; i<8; i++)
{
for(int j=0; j<8; j++)
{
	tab[i][j] = (rand()% 20)+1;	
	
	

}
}
max = min = tab[8][8];
 for (int i=0; i=8; i++)
 {
 		

if(min < tab[i])
{
min = tab[i];	
}


else
{
	if(max > tab[i])
	{
		max = tab[i];
	}
}
 }

 




 
cout << "Najmniejsza wartosc " << min << endl;
cout << "Najwieksza wartosc " << max << endl;
 
system("PAUSE");
return 0;
}

błąd "invalid conversion int* to int"
ktoś coś??

0

kompilator ci wyraźnie powiedział jaki jest błąd, więc w czym problem?
<code=c++>
for (int i=0; i=8; i++) {
if(min < tab[i])
{
min = tab[i];
}

else
{
if(max > tab[i])
{
max = tab[i];
}
}
}

0

kompilator ci wyraźnie powiedział jaki jest błąd, więc w czym problem?

for (int i=0; i=8; i++){
if(min < tab[i])
{
min = tab[i];    
}
 
 
else
{
    if(max > tab[i])
    {
        max = tab[i];
    }
}
 }
0
if(max > tab[i])

max to int, tab[i] to int*. kompilator ci to wyraźnie powiedział

0
int tab[][]==int**
int tab[]==int*
int tab==int 

a więc

(int max==int)!=(int tab[i][]==int*) 

ponieważ ustaliłeś pierwszy wymiar to zostaje ci drugi... dlatego masz int* a nie int

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