Zaloguj się

View Full Version : C++ i schemat blokowy.



Myst
06-05-2010, 12:14
Witam to kolejny temat dotyczący jednego zadania :mad:.

W c++ napisać mam takie coś, że program pyta osobę ile chce podać liczb rzeczywistych i potem gdy osoba wpisze tyle liczb ile chciała podać, to ma wybrać 2 najmniejsze z nich.

Do tego zadania trzeba też w programie innym narysować schemat blokowy.
Oczywiście reputki polecą za pomoc.

Edit
Zadanie już zrobione, dostałem je od BlizzarĐaviD - programisty C++ (OTSy 7.6)"

#include <iostream>
#include <string>
#include <conio.h>

using namespace std;

int main(int argc, char *argv[])
{
//Podanie ilości liczb rzecz. w formie stringa
int ile;
do{
cout<<"Podaj ilosc liczb rzeczywistych: ";
cin >> ile;
//warunek, że ilość musi być od 2 w górę
}while (ile <= 1);
//deklaracja tablicy standardowej (float) o ilości 'ile' o jedną mniej (ponieważ zaczyna się od [0], a nie [1])
float liczby[ile];
float liczba;
//pętla w której podajesz wszystkie liczby
for(int x = 0; x < ile; x++){
cout << "Podaj liczbe rzeczywista nr " << x+1 << ": ";
cin >> liczba;
liczby[x] = liczba;
}
//znalezienie największej liczby (potrzebne, by znaleźć obie najmniejsze)
float start = liczby[0];
for(int x = 0; x < ile; x++){
if(start < liczby[x]){
start = liczby[x];}
}
//deklaracja dwóch najmniejszych i nadanie im obu największej z liczb, czyli start
float najmniejszaA = start;
float najmniejszaB = start;
//deklaracja punktu, który wymagany jest, żeby najmn.A i B nie pochodziły od jednej, tej samej podanej liczby
int punkt = -1;
//znalezienie najmniejszejA i określenie jej punktu (miejsca liczby podanej ze zbioru)
for(int x = 0; x < ile; x++){
if(najmniejszaA > liczby[x]){
najmniejszaA = liczby[x];
punkt = x;}
}
//znalezienie najmniejszejB
for(int x = 0; x < ile; x++){
//sprawdzenie czy miejsca (podanych liczb) są różne
if(x != punkt){
if(najmniejszaB > liczby[x]){
najmniejszaB = liczby[x];
}
}
}
//wskazanie najmniejszych dwóch liczb
cout << "Najmniejsze z podanych liczb rzeczywistych to: " << najmniejszaA << " i " << najmniejszaB;

getch();
return 0;

}