Wątek przeniesiony 2019-03-15 23:07 z przez ŁF.

znajdowanie min

2019-03-14 22:29
0

Napisz program, który wczyta ze standardowego wejścia ciąg liczb całkowitych X1, X2, ..., a następnie wydrukuje na standardowe wyjście najmniejszą liczbe.

Prosze o pomoc brak mi pomysłow...

#include <iostream>
#include <cstdio>

using namespace std;

int main()
{
    int liczby[20];
    int i=0;
    int min;
    for(int i=0; i<20; i++)
        liczby[i]=0;
    while(cin>>liczby[i++])
    {
        if(getchar() == '\n')
        {
            break;
        }
    }
 min=liczby[0];
    for(int i=0; i<20; i++)
        if(min>liczby[i])
            min = liczby[i];

    cout<<"min: "<<min<<endl;
    return 0;
}

Pozostało 580 znaków

2019-03-14 23:37
kq
0

Możesz trochę oszukać ze stringstreamem:

#include <iostream>
#include <sstream>
#include <string>

int main()
{
    int min, max, temp;
    std::string line;
    // brak obsługi błędów w prostym przykładzie
    getline(std::cin, line);
    std::stringstream ss{line};
    ss >> min;
    max = min;
    while(ss >> temp) {
        if(temp < min) {
            min = temp;
        } else if(temp > max) {
            max = temp;
        }
    }
    std::cout << "Min: " << min << '\n';
    std::cout << "Max: " << max << '\n';
}

https://wandbox.org/permlink/r2Y8K8QjSGGE5Ix7


edytowany 2x, ostatnio: kq, 2019-03-14 23:45

Pozostało 580 znaków

2019-03-14 23:44
0

wciaz mi wyswietla bledny wynik dla nie ktorych przypadkow gdzie popelnilem bląd?

#include<iostream>
int main()
{
    int min,max;
    std::cin >> min;
    std::cin >> max;
    int temp;
    while(std::cin >> temp)
    {
        if(temp < min)
        {
            {
                min = temp;
            }
        }
        if(temp > max)
        {
            {
                max = temp;
            }
        }
    }
     std::cout << min<<"\t"<<max;
}

Pozostało 580 znaków

2019-03-14 23:45
kq
0
    std::cin >> min;
    std::cin >> max;

Nie bierzesz pod uwagę pierwszej wartości przy sprawdzaniu max.

edit: mój kod miał ten sam problem, poprawiłem,


edytowany 1x, ostatnio: kq, 2019-03-14 23:45

Pozostało 580 znaków

2019-03-14 23:51
0

hmm nie mam pomyslu jak to napisac, zrobilem cos takiego

#include<iostream>
int main()
{
    int min,max;
    std::cin >> min;
    std::cin >> max;
    int temp;
    while(std::cin >> temp)
    {
        if(temp < min && temp<max)
        {
            {
                min = temp;
            }
        }
        if(temp > max&&temp>min)
        {
            {
                max = temp;
            }
        }
    }
     std::cout << min<<"\t"<<max;
}

Pozostało 580 znaków

2019-03-15 09:25
1
dcielak napisał(a):

hmm nie mam pomyslu jak to napisac, zrobilem cos takiego

    int min,max;
    std::cin >> min;
    std::cin >> max;

Zastanów się nad tym kodem, i pomyśl co robi. Potem upewnij się że jest to co polecił Ci @kq Jak już to zrobisz - będziesz wiedział co jest nie tak.

Ps: Dokładniej chodzi o to ile ten kod pobiera liczb, a ile powinien?


char mander; bool basaur;
Zaawansowana biblioteka T-Regx do wyrażeń regularnych w PHP
edytowany 1x, ostatnio: TomRiddle, 2019-03-15 09:26

Pozostało 580 znaków

Liczba odpowiedzi na stronę

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