Rozdział 22 - najwiekszy element tablicy [rozwiazane]
Ostatnio zmodyfikowano 2016-10-25 11:24
| majsterfun Temat założony przez niniejszego użytkownika | Rozdział 22 - najwiekszy element tablicy [rozwiazane] » 2016-10-25 11:24:01 #include <iostream>#include <cstdio>
 #include <ctime>
 #include <cstdlib>
 using namespace std;
 
 
 int wpisywanie_tablica( int t[], int n )
 {
 int i = 0;
 do
 {
 t[ i ] =(( rand() % 80 ) + 1 );
 i++;
 } while( i < n );
 
 }
 
 int wypisz( int t[], int n )
 {
 int i = 0;
 cout << "Twoje liczby to: ";
 do
 {
 cout << t[ i ] << ", ";
 i++;
 } while( i < n );
 
 }
 
 int dodawanie_tablicy( int t[], int n )
 {
 int i = 0;
 int suma = 0;
 do
 {
 suma = suma + t[ i ];
 i++;
 } while( i < n );
 
 cout << "Suma liczb: " << suma;
 }
 
 int iMax( int t[], int n )
 {
 int i = 0;
 int najwiekszy = 0;
 
 do
 {
 if( t[ i ] < t[ i++ ] )
 najwiekszy = t[ i ];
 
 i++;
 } while( i < n );
 
 return najwiekszy;
 }
 
 
 
 int main()
 {
 int p = 0;
 int iMaxi = 0;
 srand( time( NULL ) );
 cout << "Podaj rozmiar tablicy" << endl;
 cin >> p;
 int tablica[ p ];
 wpisywanie_tablica( tablica, p );
 cout << endl;
 wypisz( tablica, p );
 cout << endl;
 dodawanie_tablicy( tablica, p );
 cout << endl;
 iMaxi = iMax( tablica, p );
 cout << iMaxi;
 
 return 0;
 }
 
Według mnie wszystko powinno chodzić, dlaczego po wywołaniu programu zwraca mi wartość 0? Chodzi o tą funkcje: int iMax( int t[], int n ){
 int i = 0;
 int najwiekszy = 0;
 
 do
 {
 if( t[ i ] < t[ i++ ] )
 najwiekszy = t[ i ];
 
 i++;
 } while( i < n );
 
 return najwiekszy;
 }
 
Ok, problem rozwiązany, zmieniłem algorytm porównując resztę tablicy z jej pierwszym elementem int iMax( int t[], int n ){
 int i = 0;
 int najwiekszy;
 najwiekszy = t[ 0 ];
 do
 {
 if( t[ i ] > najwiekszy )
 najwiekszy = t[ i ];
 
 i++;
 } while( i < n );
 
 return najwiekszy;
 }
 
 | 
|  | 
| « 1 » |