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

Wypisanie liczb z przedziału.

Ostatnio zmodyfikowano 2016-11-25 17:58
Autor Wiadomość
karambaHZP
» 2016-11-25 09:36:32
jeżeli podam liczby 1-10 potrzebuję tablice 10 elementową ale gdy podam  1 - 25000 to tablica musi być inna.
Funkcji nie mogę użyć.
C korzysta z VLA więc możesz na bieżąco podać rozmiar tablicy, ale nie polecam tego rozwiązania.
Istnieje ryzyko przepełnienia stosu i lepiej dynamicznie alokować pamięć.
C/C++
#include <stdio.h>

int main()
{
    int N;
    scanf( "%d", & N );
    int tab[ N ];
    for( int i = 0; i < N; ++i ) {
        tab[ i ] = i + 1;
    }
   
    for( int i = 0; i < N; ++i ) {
        printf( "%d ", tab[ i ] );
    }
}
P-154112
michal11
» 2016-11-25 10:06:48
Jeżeli masz tylko wypisać liczby z przedziału i nic więcej z nimi nie robić to nie musisz wrzucać ich do tablicy.
P-154114
CCbolt
Temat założony przez niniejszego użytkownika
» 2016-11-25 11:02:08
Jestem zainteresowany, mi to zadanie się skojarzyło z losowaniem liczb jakie tu robiłem i starałem się w tą stronę uderzyć.
Swoją drogą komputer gdzieś liczby pomiędzy A i B musi trzymać stąd ten skok na tablice.
P-154118
SeaMonster131
» 2016-11-25 11:06:47
komputer gdzieś liczby pomiędzy A i B musi trzymać
Dlaczego? Skoro zna początek i koniec przedziału (jako NumA i NumB).
P-154120
mateczek
» 2016-11-25 11:30:55
ludzie mają ostatnio straszny problem opisaniem tego, co chcą osiągnąć !!!

Przykład:
Zadanie programu to: Najpierw przyjąć 10 liczb typu int.  Następnie spytać się użytkownika o przedział. Na koniec wypisać tylko liczby, które zawarte są w przedziale. 
C/C++
#include<iostream>
using namespace std;
int main() {
    cout << "ile liczb chcesz podać: ";
    int rozmiar;
    cin >> rozmiar;
    int * tab = new int[ rozmiar ];
    cout << "wprowadz" << rozmiar << "liczb:" << endl;
    for( int i = 0; i < rozmiar; i++ ) {
        cout << "liczba " << i + 1 << ":";
        cin >> tab[ i ];
        cout << endl;
    }
   
    cout << "podaj granice przedzialu" << endl;
    int lim1, lim2;
    cin >> lim1 >> lim2;
    if( lim1 > lim2 ) swap( lim1, lim2 ); //zamiana miejscami
   
    for( int i = 0; i < rozmiar; i++ ) {
        //wypisuję tylko liczby zawarte w przedziale..... lim1<=liczba<=lim2
        if( lim1 <= tab[ i ] && tab[ i ] <= lim2 ) {
            cout << tab[ i ] << " ";
        }
    }
    delete[] tab;
}
P-154121
CCbolt
Temat założony przez niniejszego użytkownika
» 2016-11-25 11:37:25
Ok pętla for( i= NumA; i<=NumB; i++ ) i leci bez tablicy.
P-154122
mateczek
» 2016-11-25 11:45:24
Ok pętla for( i= NumA; i<=NumB; i++ ) i leci bez tablicy.
AAAAAAAAAAAAAAAA to o takie wypisywanie liczb z przedziału chodziło :P:P:P
No to faktycznie nie trzeba tablicy:P
P-154123
karambaHZP
» 2016-11-25 11:48:10
Na koniec wypisać tylko liczby, które zawarte są w przedziale.
z liczbami A i B włącznie
Warto by dodać, że przedziale obustronnie domkniętym.

C/C++
#include <stdio.h>

int main()
{
    int counter = 0;
    int downLim = 3;
    int upLim = 8;
    int nLoops = 0;
    scanf( "%d", & nLoops );
    while( counter++ < nLoops ) {
        int number = 0;
        scanf( "%d", & number );
        if( number >= downLim && number <= upLim ) {
            printf( "%d ", number );
        }
    }
}

5
11 6 5 9 3
6 5 3

edit:
Ok pętla for( i= NumA; i<=NumB; i++ ) i leci bez tablicy.
.
To z tym maiłeś problem? Spoko:)
P-154124
1 « 2 » 3
Poprzednia strona Strona 2 z 3 Następna strona