(Nowicjusz)Powtarzanie operacji w c++

0

Witam, ucze się języków programowania od kilku dni.
Wyszukuje zadania na internecie i staram się je rozwiązywać, w tym przypadku mi się udało z wyjątkiem jednego problemu.
Po wpisaniu liczby innej niż zakłada warunek if, program wyswietla komunikat cout i konczy program, co mam zrobić żeby mozna bylo powtorzyc wpisanie zmiennej do czasu az bedzie spelniala warunek if?
Oto tresc zadania:

Napisz program wczytujący z klawiatury n liczb całkowitych. Liczbę n należy pobrać z klawiatury. Jeśli
wartość n podana przez użytkownika jest liczbą z zakresu od 1 do 30, wówczas program ma wczytać podaną
ilość liczb całkowitych, a następnie wczytane liczby wydrukować na ekranie. Jeśli natomiast podana wartość n
jest liczbą spoza przedziału [1; 30], wówczas program kończy pracę drukując stosowny komunikat.
W zadaniu należy wykorzystać trzydziestoelementową tablicę liczb całkowitych.

#include <iostream>

using namespace std;

int tab[30];
int i,n;
int main()
{
    cout << "Podaj n:" << endl;
    cin>>n;
    if(n>0&&n<=30){
        for(i=0; i<n; i++){
            cout<<"Podaj "<<i+1<<" liczbe:";
            cin>>tab[i];
        }
        cout<<"Oto liczby:"<<endl;
        for(i=0; i<n; i++){
            cout<<i+1<<" liczba: "<<tab[i]<<" "<<endl;
        }
    }
    else{
        cout<<"Podana liczba jest nieprawidlowa.";
    }

    return 0;
}

3

Pętle w C++ mają konstrukcję:

while (warunek) {
    wykonywane_instrukcje;
}

oraz

for (instrukcja_początkowa; warunek; instrukcja_wykonywana_po_każdym_kroku) {
    wykonywane_instrukcje;
}
0

@Althorion: Czy moglbys mi podpowiedziec w jaki sposob moge użyć tutaj fpętli while? Probowałem to zrobić na kilka sposob i cały czas się nie udaje, wiem do czego służy i jak działa, ale nie wiem jak ją zastosować w tym wypadku

Wymyśliłem coś takiego, jednak teraz po skonczeniu calej operacji program sie nie konczy tylko powtarza

#include <iostream>

using namespace std;

int tab[30];
int i,n;
int main()
{
    while(n==i||n<30||n>0){
    cout << "Podaj n:" << endl;
    cin>>n;
    if(n>0&&n<=30){
        for(i=0; i<n; i++){
            cout<<"Podaj "<<i+1<<" liczbe:";
            cin>>tab[i];
        }
        cout<<"Oto liczby:"<<endl;
        for(i=0; i<n; i++){
            cout<<i+1<<" liczba: "<<tab[i]<<" "<<endl;
        }
    }
    else{
        cout<<"Podana liczba jest nieprawidlowa.";
    }}

    return 0;
}

Okej udało się :) Po ostatniej pętli for dodałem "break;" i wszystko działa jak należy

0
while (cin>>n) {
   if (n<=0|n>30) { cout <<"podana liczba jest nieprawidlowa"; break: }

    while(n--<=0){
        cout<<"Podaj "<<n-(n-1)<<" liczbe:";
        cin>>tab[n-(n-1)];
     }
     cout<<"Oto liczby:"<<endl;
     while(n++ < sizeof(tab)/sizeof(tab[0])){
        cout<<n+1<<" liczba: "<<tab[n]<<" "<<endl;
     }
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1