Witam!
Jestem nowy na forum, więc jeżeli umieściłem temat w złym dziale, dubluje tematy lub coś to z góry przepraszam.
Trzy dni temu zacząłem swoją przygodę z C++ - oczywiście z kursem Pana Mirosława. Aktualnie jestem na 11 odcinku. Staram się pisać programy, które są w kilku słowach opisywane,a potem wykonane przez Pana Mirosława. Spróbowałem napisać jak najbardziej czytelny, spójny, profesjonalny, z podziałem na wszystkie funkcje itp. program. Po testach wydaje mi się, że wszystko działa bez zarzutów. Teraz mam prośbę do Was - starszych stażem programistów, abyście sprawdzili czy wszystko na pewno jest ładnie napisane i czy mój program nie robi w dziwnych przypadkach jakiś numerów. Od razu mówię, że nie robiłem obsługi błędów typu, osoba nie wpisze liczby.
Problem, który ma rozwiązywać kod to wynajdowanie liczby największej oraz najmniejszej z nieznanej(wprowadzanej przez użytkownika) ilości cyfr.
Oto kod:
#include <iostream>
using namespace std;
void wczytaj(float *wyrazy, int ile);
float max(float *wyrazy, int ile);
float min(float *wyrazy, int ile);
int ilosc=0;
int main()
{
cout << "Z ilu cyfr chcesz wyszukać najwieksza/najmniejsza liczbe?" << endl;
cin >> ilosc;
float *tablica;
tablica=new float [ilosc];
wczytaj(tablica, ilosc);
int wybor;
cout << "Jezeli chcesz poznac wartosc najwieksza wybierz 1, a jezeli wartosc najmniejsza 2." << endl;
cin >> wybor;
switch(wybor)
{
case 1: cout << endl << max(tablica, ilosc); break;
case 2: cout << endl << min(tablica, ilosc); break;
}
delete [] tablica;
getchar(); getchar();
}
void wczytaj(float *wyrazy, int ile)
{
for(int i=0; i<ile; i++)
{
cout << "Podaj " << i+1 << " liczbe." << endl;
cin >> *wyrazy;
wyrazy++;
}
}
float max(float *wyrazy, int ile)
{
int x, y;
x=*wyrazy; //przypisujemy x = 1 szufladke
y=*(wyrazy+1); //przypisujemy y = 2 szufladke
for(int i=0; i<ile+1; i++)
{
if(x<y) //sprawdzamy czy x szufladka jest mniejsza od y szufladki
{
x=y; //jezeli jest to przypisujemy x = y szufladke
y=*(wyrazy++); //a y przypisujemy nastepna szufladke
}
else
{
y=*(wyrazy++); //jezeli nie jest to y przypisujemy nastepna szufladke
}
}
return x;
}
float min(float *wyrazy, int ile)
{
int x, y;
x=*wyrazy;
y=*(wyrazy+1);
for(int i=0; i<ile+1; i++)
{
if(x>y)
{
x=y;
y=*(wyrazy++);
}
else
{
y=*(wyrazy++);
}
}
return x;
}