• 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

Object Storage Arubacloud
+2 głosów
11,098 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 Ekspert (344,860 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 (253,340 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 (91,010 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 (91,010 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 (91,010 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ź 318 wizyt
0 głosów
2 odpowiedzi 1,919 wizyt
pytanie zadane 31 marca 2020 w C i C++ przez Ashay Nowicjusz (160 p.)
0 głosów
3 odpowiedzi 21,353 wizyt
pytanie zadane 20 kwietnia 2015 w C i C++ przez niezalogowany

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...