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

liczba najbliżej średniej

VPS Starter Arubacloud
0 głosów
212 wizyt
pytanie zadane 21 listopada 2015 w C i C++ przez Arturrs Nowicjusz (140 p.)
edycja 21 listopada 2015 przez Arkadiusz Waluk

Witam, jestem nowy w te klocki, robię sobie właśnie zadanko z lekcji 11(kurs programowanie Pana Mirosława z youtube) i nie wiem dlaczego wszystkie if`y są rzekomo poprawne i wyskakują wszystkie możliwości haha na ekranie, tak jaby 5 warunków było spełnione i 5 liczb było najbliżej średniej.

Zamieszczam kod, zapewne trochę przekombinowany, ale starałem się sam pokombinować

 

#include <iostream>
#include <cmath>

using namespace std;
double a,b,c,d,e,s,n,a1,a2,a3,a4,a5,m;
int main()
{
    cout << "podaj 5 liczb rozdzielonych spacja" << endl;
    cin>>a>>b>>c>>d>>e;
    s=(a+b+c+d+e)/5;
    cout<<"srednia wynosi "<<s<<endl;
  a1=(s-a); (a1)=abs(a1);
  a2=abs(s-b);
  a3=abs(s-c);
  a4=abs(s-d);
  a5=abs(s-e);
  n=a1;
 if(a2<n) n=a2;
 if(a3<n) n=a3;
 if(a4<n) n=a4;
 if(a5<n) n=a5;
 m=n;

 if(m=a1-s) {cout<<"haha chodziło o "<<a<<endl;}
 if(m=a2-s) {cout<<"haha chodziło o "<<b<<endl;}
 if(m=a3-s) {cout<<"haha chodziło o "<<c<<endl;}
 if(m=a4-s) {cout<<"haha chodziło o "<<d<<endl;}
 if(m=a5-s) {cout<<"haha chodziło o "<<e<<endl;}

    return 0;
}

 

4 odpowiedzi

+2 głosów
odpowiedź 21 listopada 2015 przez Ehlert Ekspert (214,060 p.)

porównuje się w ten sposób

if(cos == cos2){
//...
}

 

komentarz 21 listopada 2015 przez Arturrs Nowicjusz (140 p.)
Mam teraz podwójne równa się w 5 miejscach i kompilator nie wyświetla żadnego haha, tak jakby wszystkie 5 warónków było niespełnione
+2 głosów
odpowiedź 21 listopada 2015 przez Porcupine Nałogowiec (31,560 p.)
Pojedyncze równa się (=) to przypisanie, sprawdzanie równości to ==.

Pozdrawiam,
0 głosów
odpowiedź 21 listopada 2015 przez adikab Nowicjusz (180 p.)
edycja 21 listopada 2015 przez adikab
Po co w ostatnich if-ach -s ?? To Ci nigdy nie zadziała bo do zmiennej m wpisałeś którąś z wybranych wartości a1,a2,a3,a4,bądź a5, a potem porównujesz je nie z a1...a5 tylko z a1-s....a5-s. :) Dodatkowo ta zmienna m nie jest tu do niczego potrzebna, marnotrawstwo pamięci ;) możesz w ifach użyć przecież n, do czego m=n ?? :)

Reasumując, wywalasz to m=n; no i oczywiście deklarację tej zmiennej ;)

i w ifach

if(n==a1)

.
.

if(n==a5)

Sprawdzanie ==, przypisanie wartości =, ale to już wyżej ktoś napisał ;)
0 głosów
odpowiedź 21 listopada 2015 przez hit02 Nałogowiec (33,970 p.)
edycja 21 listopada 2015 przez hit02

Jak już koledzy powiedzieli, powinieneś dać "==" zamiast "=".

Moim zdaniem nie powinieneś był również odejmować "s" w warunkach. Nie sprawdzałem tego w praktyce, ale po krótkim zreversowaniu kodu właśnie to rzuciło mi się w oczy. wink

PS Tak w sumie, to jestem ciekaw, czemu ktoś zgłosił to pytanie. smiley

Podobne pytania

0 głosów
2 odpowiedzi 604 wizyt
0 głosów
2 odpowiedzi 993 wizyt

93,004 zapytań

141,969 odpowiedzi

321,248 komentarzy

62,340 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

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...