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

Problem z zapisaniem zadania w maszynie RAM – potrzebna pomoc

2018-10-23 07:36

Rejestracja: 1 rok temu

Ostatnio: 9 miesięcy temu

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;
}
edytowany 2x, ostatnio: furious programming, 2018-10-23 12:12
Twój kod jest w C++, nie C - to są dwa różne języki. - Patryk27 2018-10-23 08:58

Pozostało 580 znaków

2018-10-23 08:43

Rejestracja: 7 lat temu

Ostatnio: 1 godzina temu

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.

To ma prawo działać, jeśli kompilator wspiera VLA. - furious programming 2018-10-23 12:14

Pozostało 580 znaków

2018-10-23 08:50

Rejestracja: 1 rok temu

Ostatnio: 9 miesięcy temu

0

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

Pozostało 580 znaków

Szalony Jeleń
2018-10-23 09:12
Szalony Jeleń
0

przypadkiem nie chodziło o maszynę PRAM ?

Pozostało 580 znaków

2018-10-23 09:13

Rejestracja: 1 rok temu

Ostatnio: 9 miesięcy temu

0
Szalony Jeleń napisał(a):

przypadkiem nie chodziło o maszynę PRAM ?

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

Pozostało 580 znaków

2018-10-23 09:15

Rejestracja: 6 lat temu

Ostatnio: 3 miesiące temu

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

Pozostało 580 znaków

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