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

Problem z zapisaniem zadania w maszynie RAM – potrzebna pomoc

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

4 5 -10 17 -2 9 0

poprawną odpowiedzią jest

-10

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

#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;
}
1

Ten kod w C jest niepoprawny.

    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.

0

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

0

przypadkiem nie chodziło o maszynę PRAM ?

0
Szalony Jeleń napisał(a):

przypadkiem nie chodziło o maszynę PRAM ?

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

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ę.

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