Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Zapętlanie tworzenia zmiennych

Ostatnio zmodyfikowano 2011-02-03 16:05
Autor Wiadomość
neverneve
Temat założony przez niniejszego użytkownika
» 2011-02-03 15:56:43
Cóż, szkoda - mimo to wyjaśnię, co chcę zrobić, może jest jakiś inny sposób.

Otóż napisałem program który z wczytanych liczb wypisuje [url=http://pl.wikipedia.org/wiki/Liczby_wzgl%C4%99dnie_pierwsze]pary liczb względnie pierwszych[/url].
Miał on błąd, otóż definiowałem w nim tablicę w trakcie trwania programu - DejaVu poradził mi użycie dynamicznego zarządzania pamięcią, ja to sobie przerobiłem i dodałem do programu, który ma teraz taką postać:

C/C++
#include <iostream>
using namespace std;

int NWD( int a, int b )
{
    int c;
    while( b != 0 )
    {
        c = a % b;
        a = b;
        b = c;
       
    }
    return a;
}



int main()
{ int liczbaElementow;
    cout << "Ile wyrazow podasz?\n";
    cin >> liczbaElementow;
   
    int * tab = new int[ liczbaElementow ];
   
    for( int i = 1; i <= liczbaElementow; i++ )
    {
        cout << "Podaj " << i << " liczbe: ";
        cin >> tab[ i - 1 ];
    }
   
    endl( cout );
   
    for( int i = 0; i < liczbaElementow - 1; i++ )
    {
        for( int l = i + 1; l < liczbaElementow; l++ )
        {
            if( NWD( tab[ i ], tab[ l ] ) == 1 ) cout << tab[ i ] << " i " << tab[ l ] << " sa parami wzglednie pierwszymi.\n";
           
        }
       
    } delete[] tab;
    return 0;
}


___

Teraz chciałbym zrobić tak, aby program wczytywał liczby podawane przez użytkownika, dopóki nie wpisze on liczby 0, przykład (to co pogrubione, to pochodzi od użytkownika programu):

 Podawaj liczby, jeśli chcesz skończyć napisz 0 i naciśnij ENTER.
2 3 4 0 //tutaj program brałby pod uwage liczby 2, 3 i 4
 2 i 3 są parami względnie pierwszymi.
 3 i 4 są parami względnie pierwszymi.

___

Chciałem to zrobić tak, że za każdym razem kiedy użytkownik poda liczbę naturalną dodatnią to program tworzy zmienną, i tak dopóki użytkownik nie poda 0 (w międzyczasie chodzi licznik, który po podaniu takiej liczby inkrementuje się (zwieksza o 1). Po podaniu 0 program tworzy dynamiczną tablicę o rozmiarze równym licznikowi i zapisuje wszystkie zmienne do dynamicznej tablicy. (Myślałem też nad tym aby te wszystkie zmienne zrobić też dynamicznymi i potem usunąc przy pomocy delete zmienna.

Ogólnie chodzi mi tu o to by użytkownik nie musiał podawać na początku ile liczb poda (bo w trakcie ich podawania może się rozmyślić). Mam nadzieję że napisałem to zrozumiale.
P-27764
ison
» 2011-02-03 16:05:28
możesz albo zadeklarować maksymalny rozmiar tablicy i potem zwyczajnie przypisywać wartości do kolejnych elementów aż użytkownik poda 0
albo użyć kontenera z STLa
P-27766
1 « 2 »
Poprzednia strona Strona 2 z 2