Witam wszystkich! :)
Zwracam się z, z tego co widzę, dość nietypowym tematem, bowiem nie szukam rozwiązania zadania, a odpowiedzi na krótkie pytanie (jeśli będzie twierdząca - porady). Mowa o zadaniu ostatnim z rozdziału 22, mianowicie:
Napisz program który wykona wszystkie poniższe kroki w podanej kolejności:
Losuje 10 liczb z przedziału od 10 do 30 włącznie i zapisuje je do tablicy;
Wypisuje 10 wylosowanych liczb od początku do końca;
Wypisuje 10 wylosowanych liczb od końca do początku;
Znajduje najmniejszą oraz największą wylosowaną liczbę.
Wypisuje najmniejszą i największą wylosowaną liczbę.
Program nie może używać pętli innych niż pętla for.
Chwilkę posiedziałem, pomyślałem i doszedłem do tego, jak zrobić to zadanie. Mój kod wygląda następująco:
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
void losowanie( int t[], int ile )
{
srand( time( NULL ) );
for( int i = 0; i < ile; i++ )
t[ i ] =( rand() % 21 ) + 10;
}
void wypisanie1( int t[], int ile )
{
for( int i = 0; i < ile; i++ )
cout << t[ i ] << ", ";
cout << endl;
}
void wypisanie2( int t[], int ile )
{
for( int i = 9; i >= ile; i-- )
cout << t[ i ] << ", ";
cout << endl;
}
int najmniejsza( int t[], int ile )
{
for( int o = 0; o < 20; o++ )
{
for( int i = 0; i < ile; i++ )
{
if( t[ i ] == 10 + o )
return t[ i ];
}
}
}
int najwieksza( int t[], int ile )
{
for( int o = 0; o < 20; o++ )
{
for( int i = 0; i < ile; i++ )
{
if( t[ i ] == 30 - o )
return t[ i ];
}
}
}
void wypisz( int najmniejsza, int najwieksza )
{
cout << najmniejsza << endl;
cout << najwieksza << endl;
}
int main()
{
int tablica[ 10 ];
losowanie( tablica, 10 );
wypisanie1( tablica, 10 );
wypisanie2( tablica, 0 );
int a = najmniejsza( tablica, 10 );
int b = najwieksza( tablica, 10 );
wypisz( a, b );
system( "pause" );
return 0;
}
Mimo to, nie wiedzieć dlaczego, mam wrażenie, że przy znajdowaniu wartości minimalnej i maksymalnej chodziło o coś zdecydowanie innego. Niedawno dowiedziałem się o istnieniu pomocniczych funkcji min i max, jednak nie wiem, jak je używać.
Pytanie jest następujące: czy zrobiłem to zadanie w najprostszy możliwy sposób, czy też istnieje jakiś łatwiejszy? Zdaję sobie sprawę, że wygląda to na pytanie bezsensowne (przecież, w gruncie rzeczy, udało mi się wykonać zadanie), jednak postanowiłem, że będę upraszczał swój kod już od podstaw nauki programowania i stąd to pytanie.
Dziękuję za odpowiedzi i pozdrawiam wszystkich! :)