Problem z zapisaniem zadania w maszynie RAM – potrzebna pomoc

Problem z zapisaniem zadania w maszynie RAM – potrzebna pomoc

Wątek przeniesiony 2018-10-23 06:58 z Inne języki programowania przez Patryk27.

PA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 83
0

Cześć :)Mam problem z z zapisem tego zadania w maszynie ram, ktoś może pomóc?

Napisz program, który znajdzie minimalny element w ciągu liczb całkowitych (typu int), zakończonych zerem.

Nie wiadomo, ile liczb jest podanych na taśmie wejściowej. Ważne jest to, że za ostatnią liczbą znajduje się zero. Musisz więc wczytywać tak długo, dopóki nie wczytasz zera.

Twoim zadaniem jest wypisanie minimalnej liczby spośród wszystkich podanych na taśmie wyjściowej (oprócz zera).
Przykład:
Dla danych wejściowych

Kopiuj
4 5 -10 17 -2 9 0

poprawną odpowiedzią jest

Kopiuj
-10

Mam kod w C ale nie wiem jak zapisać to bez tablic w Maszynie RAM

Kopiuj
#include <iostream>
using namespace std;
int main()
{
    int n;
    cin >> n;
    int i;
    int tab[ i ];
    for( i = 0; i < n; i++ ) cin >> tab[ i ];
   
    int m = tab[ 0 ];
    do
    {
        int i = 1;
        i < n;
        i = i + 1;
        if( tab[ i ] < m ) m = tab[ i ];
       
    }
    while( n != 0 );
   
    cout << m;
    return 0;
}
SA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1453
1

Ten kod w C jest niepoprawny.

Kopiuj
    int i;
    int tab[ i ];

To nie ma prawa działać. Rozmiar tablicy po pierwsze musi być podany, po drugie tablica deklarowana w taki sposób musi mieć rozmiar znany w czasie kompilacji, gdy rozmiar nie jest znany trzeba użyć malloc. Ogólnie podszedłeś do problemu z d**y strony pisząc słaby kod w C i próbując go przepisać na RAM, a do rozwiązania problemu nie jest potrzebna żadna tablica. Wczytuj po kolei liczby, gdy kolejna wczytana jest mniejsza od poprzedniej to jest Twój tymczasowy wynik.

PA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 83
0

hmm...a można konkretniej albo z przykładem zapisu?

  • Rejestracja: dni
  • Ostatnio: dni
0

przypadkiem nie chodziło o maszynę PRAM ?

PA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 83
0
Szalony Jeleń napisał(a):

przypadkiem nie chodziło o maszynę PRAM ?

Nie:-)
Muszę to zadanie zapisać w MASZYNA RAM.

xfin
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Genewa
  • Postów: 597
1
  1. Program ma zmienną n - nie jest ona potrzebna. Liczby mają być wczytywane nieskończenie aż do napotkania zera, zatem potrzebna jest pętla z obsługą odpowiedniego warunku.
  2. Tutaj nawet nie jest potrzebna tablica. Potrzebujesz dwóch zmiennych - liczby wczytanej i liczby najmniejszej. JAk najmniejsza jest większa od wczytanej to zamieniamy. I lecimy następną iterację.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.