• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Python - liczba najmniejsza i największa bez tablic

+2 głosów
14,161 wizyt
pytanie zadane 29 listopada 2019 w Python przez czowiek Początkujący (390 p.)
zamknięte 10 lutego 2021 przez HaKIM

Szanowni Forumowicze,

jak napisać algorytm, który będzie wczytywał n liczb rzeczywistych, a następnie wyświetli największą i najmniejszą z nich; mogę wspomagać się tylko while, zmiennymi i if. Oto mój początek kodu (to jest początek, nie cały mój kod; wyświetliłem go, żebyście mieli jakiś pogląd jak to ma mniej więcej wyglądać). Dalej pisałem, ale nie wychodziło.

n = int(input("podaj n liczb do wczytania, a nastepnie wartosci: "))

max = 0
min = 0

i = 0
while i < n:
   liczba = int(input("podaj liczbe: "))
   if liczba > max:
      max = liczba
   else:
      min = liczba
   i += 1
   
print(max)
print(min)

 

komentarz zamknięcia: Temat zamknięty.

3 odpowiedzi

+2 głosów
odpowiedź 29 listopada 2019 przez adrian17 Mentor (355,240 p.)

Nieźle. Dwie ważne uwagi:

   if liczba > max:
      max = liczba
   else:
      min = liczba

Tutaj zakładasz, że jeśli liczba nie jest największa, to (else) jest najmniejsza - to oczywiście nie jest prawdą :) Trzeba osobno sprawdzić czy jest większa od największej lub mniejsza od najmniejszej.

Po drugie:

ujemne, dodatnie, ułamki

(zakładam że przez "ułamki" masz na mysli liczby rzeczywiste, tzn "12.345")

Tutaj masz dwa problemy: mniejszy, że używasz int() do zamiany stringa na liczbę, więc nie jesteś w stanie czytać liczb rzeczywistych. Większy, że "zaczynasz od zera".

max = 0
min = 0

Więc jeśli ktoś wpisze 3 4 5, to dostanie min=0. Jeśli wpisze -2 -7, to dostanie max=0. Musisz tak to obsłużyć, żeby nie zaczynać "od zera", tylko od pierwszej liczby wprowadzonej przez użytkownika.

+1 głos
odpowiedź 8 lutego 2021 przez CIO3KOV Początkujący (440 p.)
n = int(input("podaj n liczb do wczytania, a nastepnie wartosci: "))
 
liczba = int(input("podaj liczbe: "))
max = liczba
min = liczba
i = 1

while i < n:
    liczba = int(input("podaj liczbe: "))
    if liczba > max:
        max = liczba
    if liczba < min:
        min = liczba
    i += 1
    
print(max)
print(min)

Musimy założyć, że najmniejsza liczba to ta którą wpisaliśmy a nie 0. jeśli chodzi o warunek dla najmniejszej to jest odwrotny do największej, czyli jeżeli istnieje jakaś mniejsza to wtedy przypisz ją do najmniejszej

komentarz 8 lutego 2021 przez VBService Ekspert (256,660 p.)
edycja 8 lutego 2021 przez VBService

będzie wczytywał n liczb rzeczywistych

i = 1
 
while i <= n:
i = 0
 
while i < n:

wink no i do liczb

rzeczywistych

to chyba bardziej

liczba = float(input("podaj liczbe: "))

liczby rzeczywiste ]

0 głosów
odpowiedź 29 listopada 2019 przez Benek Szeryf (94,170 p.)

Czemu by nie skorzystać z wbudowanych funkcji min i max?

komentarz 29 listopada 2019 przez czowiek Początkujący (390 p.)
Pytanie jest takie, czy można to zrobić bez innych funkcji?
komentarz 29 listopada 2019 przez Benek Szeryf (94,170 p.)
Nie bardzo rozumiem co masz na myśli. Zapisujesz wyniki do jakiegoś kontenera, np. listy, po czym przekazujesz ją do wbudowanych funkcji min/max. Funkcje te zwrócą Ci to, co chcesz.
komentarz 29 listopada 2019 przez czowiek Początkujący (390 p.)
Muszę to zrobić tylko za pomocą: while, if i zmiennych.
komentarz 29 listopada 2019 przez Benek Szeryf (94,170 p.)

Napisałeś wcześniej:

nie stosując tablic, pętli for ani żadnych innych "wspomagaczy" np. funkcji

A teraz piszesz, że jednak powinieneś użyć pętli while.

komentarz 29 listopada 2019 przez czowiek Początkujący (390 p.)
Zedytowałem pytanie. Teraz pytanie, czy da się to zrobić?

Podobne pytania

+2 głosów
1 odpowiedź 635 wizyt
0 głosów
2 odpowiedzi 2,999 wizyt
pytanie zadane 31 marca 2020 w C i C++ przez Ashay Nowicjusz (160 p.)
0 głosów
3 odpowiedzi 22,839 wizyt
pytanie zadane 20 kwietnia 2015 w C i C++ przez niezalogowany

93,772 zapytań

142,730 odpowiedzi

323,382 komentarzy

63,367 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...