Program losujący liczby do wektora i wykonujący działania w oparciu o nie.
Ostatnio zmodyfikowano 2013-01-05 21:04
gekron Temat założony przez niniejszego użytkownika |
Program losujący liczby do wektora i wykonujący działania w oparciu o nie. » 2013-01-05 17:38:06 Witam, Przy okazji pozdrawiam forumowiczów, jako że to mój pierwszy post tutaj. Mam kilka problemów z moim przykładowym programem w oparciu o ćwiczenie... oto one: Program na starcie pobiera od użytkownika rozmiar wektora. Następnie deklaruje i wypełnia wektor losowymi liczbami. Po wyczyszczeniu ekranu wyświetla menu: Dla podanego zbioru liczbowego: 1. Wylicz średnią 2. Podaj ilość elementów 3. Podaj sumę elementów 4. Podaj maksimum i minimum 5. Wydrukuj elementy (indeksowane) 6. Zakończ program 1 - Nie jestem pewien jak wykonać czyszczenie, aby następnie w oparciu o dane z tablicy pokazać menu wyboru bez pokazanych o góry liczb losowych i ich komunikatów. 2 - W przypadku wskazania liczb max i min pokazuje mi dziwne wartości(niezgodne z wylosowanymi liczbami w oparciu o które chce znaleźć min i max). Chciałbym by były one z wybranego zakresu liczbowego (0-200). 3 - Nie jestem pewny co lub jak wykonać z poleceniem 5. Wydrukuj elementy (indeksowane). A to poniższy program - w razie czego proszę o uwagi co jeszcze zrobić i poprawić w nim: #include <iostream> #include <cstdlib> #include <ctime>
using namespace std;
int main() { srand( time( NULL ) ); int wektor[ 5 ]; int licznik = 0; int wybor; do { wektor[ licznik ] =( rand() % 200 ) + 0; licznik = licznik + 1; } while( licznik < 5 ); cout << "Wylosowano liczby: "; licznik = 0; do { cout << wektor[ licznik ] << ", "; licznik = licznik + 1; } while( licznik < 5 ); do { cout << "\nWybierz dzialanie do wykonania:\n1: Srednia\n2: Ilosc elementow\n3: Suma elementow\n4: Podaj maksimum i minimum\n5: Wydrukuj elementy indeksowane\n6: Zakoncz program" << endl; cout << "\nDzialanie"; cin >> wybor; { if( wybor > 0 ) cout << "Wykonywanie dzialania\n" << endl; else cout << "Powtorz" << endl; } switch( wybor ) { case 1: { int suma = 0; int srednia = 0; for( int i = 0; i < 5; i = i + 1 ) suma = suma + wektor[ i ]; srednia = suma / 5; cout << "Srednia:\n" << srednia << endl; } break; case 2: { int ilosc = 0; ilosc = 5; cout << "Ilosc elementow:\n" << ilosc << endl; } break; case 3: { int suma = 0; for( int i = 0; i < 5; i = i + 1 ) suma = suma + wektor[ i ]; cout << "Suma:\n" << suma << endl; } break; case 4: int max, min, wektor[ 5 ]; max = wektor[ 0 ]; min = wektor[ 0 ]; for( int i = 1; i < 5; i = i + 1 ) { if( wektor[ i ] > max ) max = wektor[ i ]; if( wektor[ i ] < min ) min = wektor[ i ]; } cout << "Min: " << min << endl; cout << "Max: " << max << endl; break; case 5: cout << "Wydrukuj elementy (indeksowane)=" << endl; break; case 6: return 0; default: cout << "\nBlad, wybierz akcje z zakresu 1 - 6!"; break; } } while( wybor > 0 ); return 0; }
|
|
kubawal |
» 2013-01-05 17:40:39 skorzystaj ze std::vector
kod daj w [cpp]...[/cpp] |
|
gekron Temat założony przez niniejszego użytkownika |
» 2013-01-05 17:51:03 Niestety nie jestem pewien jak skorzystać z std::vector. I czy stosować to tylko w case4: czy dla wszystkich wektorów? |
|
pekfos |
» 2013-01-05 20:13:02 Program na starcie pobiera od użytkownika rozmiar wektora. |
skorzystaj ze std::vector |
Po co? Wystarczy zaalokować tablicę. |
|
gekron Temat założony przez niniejszego użytkownika |
» 2013-01-05 20:22:49 Cóż trochę zagadnienie nie jeszcze zbyt oczywiste, bo dopiero raczkuję w temacie, więc chętnie bym zobaczył przykład lub fragment kodu poprawiający wynik z max i min. Pomoc co do reszty pytań z mojego wątku również mile widziana. |
|
pekfos |
» 2013-01-05 20:32:34 1. Dodaj wszystkie elementy i podziel przez n 2. n 3. Dodaj wszystkie elementy 4. Zrób 2 zmienne pomocnicze min i max i w pętli sprawdzaj czy kolejna wartość w tablicy jest mniejsza/większa od min/max. Aktualizuj min i max.
Te wymagania są banalne. Wystarczy chwilkę pomyśleć. |
|
gekron Temat założony przez niniejszego użytkownika |
» 2013-01-05 20:40:21 Co do 1,2,3 oraz częściowo 4 to wykonałem już to w programie, który przesłałem. Tyle, że w programie(po case 4:) max i min nie są zgodne z wylosowanymi liczbami. Chętnie bym zobaczył jak rozwiązać ten problem, najlepiej z przykładem.
|
|
pekfos |
» 2013-01-05 20:42:42 usuń wektor[ 5 ] z linii 70. |
|
« 1 » 2 |