Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

element minimalny

Ostatnio zmodyfikowano 2012-11-08 13:07
Autor Wiadomość
kama1992
Temat założony przez niniejszego użytkownika
element minimalny
» 2012-11-06 21:09:11
Cześć :)Mam problem z kodem do tego zadania:

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

Napisałam kod ale program podobno pracuje za długo. Czy ktoś ma pomysł jak zmniejszyć jego czas pracy ?
Mój kod :

C/C++
int main()
{
    int n;
    cin >> n;
    int i;
    int tab[ i ];
    for( i = 0; i < n; i++ ) cin >> T[ i ];
   
    while( n != 0 )
         int m;
   
    int m = tab[ 0 ];
   
    for( int i = 1; i < n; i++ )
    {
        if( tab[ i ] < m ) m = tab[ i ];
       
    }
   
    cout << m;
    return 0;
}
P-68649
jsc
» 2012-11-06 21:12:52
Twoje pętle for zamień na 1 pętlę do while z warunkiem biezacaLiczba != 0.
P-68652
kama1992
Temat założony przez niniejszego użytkownika
» 2012-11-06 21:27:46
czyli tak :
C/C++
#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;
}
P-68660
jsc
» 2012-11-06 21:40:35
Po co ci ta tablica?
Można sprawdzać mimimum na bieżąco.
P-68669
DejaVu
» 2012-11-06 21:46:30
Jeżeli ten program jest testowany na programach sprawdzających automatycznie poprawność rozwiązywania zadań to warto również zamienić cin/cout na printf/scanf. Można zyskać na tym ogromne przyśpieszenie jeżeli danych wejściowych/wyjściowych jest dużo, a algorytm rozwiązujący jest prosty (tj. wymaga złożoności obliczeniowej nie większej jak liniowo-logarytmiczna).
P-68673
kama1992
Temat założony przez niniejszego użytkownika
» 2012-11-06 22:03:47
bo nie mam pomysłu jak napisać to bez tablic ;/
P-68674
jsc
» 2012-11-06 22:26:03
C/C++
do
{
    cin >> costam
    if( mim > costam )
    {
        mim = costam;
    }
} while( costam != 0 )
P-68676
crash
» 2012-11-08 13:07:36
Tak na przyszłość, uważaj co piszesz:


while( n != 0 )
         int m;

"Dopóki n jest różne od zero, deklaruj zmienną typu int"
...która po wyjściu z pętli nie będzie dostępna dla dalszej części programu ;)
P-68829
« 1 »
  Strona 1 z 1