dwie minimalne liczby

0

Mam problem jak znalezc dwie minimalne wartosci bez korzystania z tablic, potrafie znalezc jedna. Prosze o pomoc.

#include<iostream>
#include<cstdlib>
using namespace std;

int main()
{
    int n, min, pom;
   
    cout << "Ile liczb chcesz wczytać? ";
    cin >> n;
   
    cin >> min;
   
    for( int i = 1; i < n; i++ )
    {
        cin >> pom;
        if( min > pom )
             min = pom;
       
    }
   
    cout << "Najmniejszą wczytaną liczbą jest " << min << endl;
   
    system( "pause" );
    return 0;
}
1

Wystarczy, że będziesz trzymał minimalną (powiedzmy min[0]) oraz drugą minimalną w kolejności (min[1], przy czym min[0] <= min[1]) i jeśli użytkownik poda liczbę, która jest większa od min[0], to robisz:

min[1] = min[0]
min[0] = nowaLiczba
1
#include<iostream>
using namespace std;


int main()
{
    int n, min, prawieMin, pom;

    cout << "Ile liczb chcesz wczytać? ";
    cin >> n >> min >> prawieMin;
    if(prawieMin<min)
        {
            int x = min;
            min = prawieMin;
            prawieMin = x;
        }

    for( int i = 2; i < n; i++ )
    {
        cin >> pom;
        if(pom < prawieMin)
        {
            pom < min ? prawieMin = min, min = pom : prawieMin = pom;
        }

    }

    cout << "Najmniejszą wczytaną liczbą jest " << min << endl;
    cout << "Kolejna " << prawieMin << endl;
    return 0;
}





0

wow dzięki sporo kodu, jakos sobie juz poradziłem ale ten kod tez wart popatrzenia :)

0

Mam prośbę mogłbys zamienić mi te operatory zamienic na zwykłe instrukcje?

if(pom < min2)
        {
            pom < min ? min2 = min, min = pom : min2 = pom;
        }
0

Tu wersja z ifami:

if (pom < min2)
{
	if (pom < min)
	{
		min2 = min;
		min = pom;
	}
	else
	{
		min2 = pom;
	}
}
0
atmal napisał(a):

Tu wersja z ifami:

if (pom < min2)
{
	if (pom < min)
	{
		min2 = min;
		min = pom;
	}
	else
	{
		min2 = pom;
	}
}

wielkie dzięki

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