wypisywanie liczb

0
#include<iostream>
using namespace std;
int main()
  {
  short arr[1000],l=0;
  while(cin>>arr[l++])
     for(short x=l-1; x==0; x--)
       cout<<arr[x]; return 0;
  }

Problem mam taki, że nie wiem jak zakończyć wprowadzanie liczb z klawiatury(?), aby następnie zostały one wypisane.

0
int main(){
    short arr[1000],l=0;
    while(cin>>arr[l++])
    for(short x=l-1; x==0; x--)
              cout<<arr[x];
    re

pętla for nie wykona się dla l>1.

0

W sumie to zależy co chcesz osiągnąć.
Przykładowo:

#include<iostream>
using namespace std;
 
int main(){
    short arr[1000],l=0;
    while(cin>>arr[l++])
    for(short x=l-1; x>=0; x--)
              cout<<arr[x];
    return 0;
}

program ten będzie się wykonywać teoretycznie w nieskończoność, ponieważ nie jest określone kiedy ma przestać. To,że tablica teoretycznie ' składa się z 1000 elementów nie spowoduje przy wczytaniu ostatniego elementu przerwania programu, bowiem wyjdzie za indeks podążając ku końcowi pamięci.

Aby określić koniec można tutaj dodać warunek, wiedząc że pętla for jest sprawdzana od prawej.

nt main(){
    short arr[1000],l=0;
    while(cin>>arr[l++] , l<1000)
    for(short x=l-1; x>=0; x--)
              cout<<arr[x];
    return 0;
}
0

ale eof() to raczej do pliku a nie uzytkownika.

0
#include<iostream>
using namespace std;
 
int main()
{
    int a, x, = 0, tab[10000000];
    while(cin>> a)
{
tab[x] = a;
x++;
}
for(int i=0; i<x; i++)
cout << tab[x-1-i] << " ";
    return 0;
}
0

Nikt Ci nie dał dobrej odpowiedzi, ponieważ nikt nie wie dokładnie o co ci chodzi. Twój problem jest amatorski, jest opisany w każdej książce !!!
Tu masz trochę inny kod, chyba rozwiąże Ci problem:

 #include<iostream>
using namespace std;
 
int main()
{
    int arr[10];
    
    for(int i=0; i<10; i++)
    {
     cout<<"Wpisz "<<i+1<<" element tablicy: ";        
     cin>>arr[i];
    }
  
   cout<<"\n\n\n";
    
    for(int i=0; i<10; i++)
     cout<<i+1<<" element tablicy = "<<arr[i]<<endl;
              
    system("pause");
    return 0;
}

Następnym razem poczytaj sobie o pętli while !!!
Przeanalizuj ten kod:

    int tab[10];
    int i=0;
     
    while(i<10)
      cin>>tab[i++];

A jeszcze jedno pytanie: Dlaczego twoja pętla ma się skończyć ?!

0

ale tutaj możesz max wprowadzić 10 elementów do tablicy. A ja chce wprowadzić niewiadomą liczbę elementów(raz 10, następnem razem 100, itd. - bez podawania ile to ma być elementów!) i po naciśnięciu Entera wyświetli mi w odwrotnej kolejności.

Może podam przykład dla jaśniejszego zrozumienia o co mi chodzi:
IN:
1 2 3 4 5 6 7
OUT(Po naciśnięciu Entera):
7 6 5 4 3 2 1

Na wejściu nie ma być powiedziane ile zostanie wprowadzonych elementów, dopiero po naciśnięciu Entera spowoduje, że policzy elementy i wypisze w odwrotnej kolejności.

0
  1. Takie zadanie robi się na tablicach dynamicznych (ale chyba nie wiesz co jest)
  2. Jeśli chcesz zniszczyć swoją pamięć to robisz np. warunek: while(... && arr [l-1]!=0)
  3. Takie rzeczy robi się całkiem inaczej !!!
  4. Więc lepiej zainwestuj w symfonię !!!!!
1

Pierwszy na myśl przychodzi stos:

#include <iostream>
#include <sstream>
#include <string>
#include <stack>

int main() {
    std::string line;
    getline(std::cin, line);
    std::stringstream ss(line);
    int current;
    std::stack<int> stack;
    while (ss >> current) {
        stack.push(current);
    }
    while (!stack.empty()) {
        std::cout << stack.top() << ' ';
        stack.pop();
    }
    std::cout << '\n';
    
    return 0;
}

Jeśli koniecznie chcesz zrobić to na zwykłej tablicy bez alokowania:

#include <iostream>
#include <sstream>
#include <string>

int main() {
    std::string line;
    getline(std::cin, line);
    std::stringstream ss(line);
    int current;
    unsigned int count = 0;
    const unsigned int array_size = 10;
    int array[array_size];
    while (count < array_size && ss >> current) {
        array[count++] = current;
    }
    if (count < 1) {
        std::cerr << "Nie wprowadzono liczb";
    } else {
        for (int i = count - 1; i >= 0 ; --i) {
            std::cout << array[i] << ' ';
        }
    }
    std::cout << '\n';
    
    return 0;
}

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