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

Liczba najblizej sredniej liczby podanych przez uzytkownika

42 Warsaw Coding Academy
0 głosów
284 wizyt
pytanie zadane 2 kwietnia 2021 w C i C++ przez fsfxvcxv Obywatel (1,160 p.)

Mam pytanie jak przeksztalcic ten kod aby zadziałał? Tresc zadania jest  taka, aby uzytkownik podał 5 liczb i zeby zwrocilo ta liczbe ktora jest najbliżej sredniej tych liczb.

Ogolnie wiem, jaki jest bład ale nie mam pomysłu jak to zmienić, aby program zaczął działać.

#include <iostream>

using namespace std;

float liczby[4];
float srednia,suma,najmn;

int main()
{
for(int i=0;i<5;i++)
   {
       cout<< "Podaj "<<i+1<< " liczbe: ";
        cin>> liczby[i];
        suma+=liczby[i];
   }
   srednia=suma/5;
cout<< "srednia liczb: "<<srednia<<endl;

najmn=liczby[0]-srednia;
if(liczby[1]-srednia<najmn) najmn=liczby[1];
if(liczby[2]-srednia<najmn) najmn=liczby[2];
if(liczby[3]-srednia<najmn) najmn=liczby[3];
if(liczby[4]-srednia<najmn) najmn=liczby[4];
cout<<najmn;

//cout<< "Podana przez ciebie liczba ktora jest najblizej sredniej wszystkich podanych przez ciebie liczb to : "<<najmn<<endl;

  return 0;
}

I tak wiem jest wiele takich samych pytan na forum, ale kazdy ma inny sposob wykonania. Z góry dziekuje

1 odpowiedź

0 głosów
odpowiedź 2 kwietnia 2021 przez tangarr Mędrzec (155,180 p.)
wybrane 2 kwietnia 2021 przez fsfxvcxv
 
Najlepsza
1. Powinieneś rozważać wartość bezwzględną różnicy liczby i średniej
2. Powinieneś stworzyć dodatkową zmienną w której trzymasz wynik.
3. Powinieneś użyć pętli do znalezienia najbliższej wyniku.
komentarz 2 kwietnia 2021 przez fsfxvcxv Obywatel (1,160 p.)
edycja 2 kwietnia 2021 przez fsfxvcxv
.abs
komentarz 2 kwietnia 2021 przez fsfxvcxv Obywatel (1,160 p.)

@tangarr,

Dalej próbuję juz nie wiem co tutaj sie dzieje i jedyne co mi pokazuje to jaka jest najkrótsza odleglosc jakiejs liczby od sredniej. Nie zechce pan jakoś bardziej  pomoc ?

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

float liczby[4];
float srednia,suma,najmn;

int main()
{
for(int i=0;i<5;i++)
   {
       cout<< "Podaj "<<i+1<< " liczbe: ";
        cin>> liczby[i];
        suma+=liczby[i];
   }
   srednia=suma/5;
cout<< "srednia liczb: "<<srednia<<endl;
float najmni;
najmn=liczby[0]-srednia;
if (abs(liczby[1]-srednia<najmn)) (najmni=abs(liczby[1]-srednia));
if (abs(liczby[2]-srednia<najmn)) (najmni=abs(liczby[2]-srednia));
if (abs(liczby[3]-srednia<najmn)) (najmni=abs(liczby[3]-srednia));
if (abs(liczby[4]-srednia<najmn)) (najmni=abs(liczby[4]-srednia));
cout<<najmn<<endl;


//cout<< "Podana przez ciebie liczba ktora jest najblizej sredniej wszystkich podanych przez ciebie liczb to : "<<<<endl;

  return 0;
}

 

komentarz 2 kwietnia 2021 przez tangarr Mędrzec (155,180 p.)

Jeszcze raz przemyśl co znaczy ten potworek:

abs(liczby[1]-srednia<najmn)

Wartość bezwzględna z wyrażenia logicznego (true/false).

W punkcie 2 mówiłem o dodatkowej zmiennej. Zmienna najmni przechowuje najkrótszą odległość od średniej. W drugiej zmiennej musisz umieścić tą liczbę.

Kod

if (abs(liczby[1]-srednia<najmn)) (najmni=abs(liczby[1]-srednia));
if (abs(liczby[2]-srednia<najmn)) (najmni=abs(liczby[2]-srednia));
if (abs(liczby[3]-srednia<najmn)) (najmni=abs(liczby[3]-srednia));
if (abs(liczby[4]-srednia<najmn)) (najmni=abs(liczby[4]-srednia));

wymień na pętlę realizującą to zadanie (i potem wprowadź wcześniej wspomniane poprawki)

komentarz 2 kwietnia 2021 przez fsfxvcxv Obywatel (1,160 p.)
Niestety nie rozumiem, jestem w tym nowy. Może po jakims czasie do tego wrócę.

Zbyt dużo czasu juz poswiecam na to zadanie .
komentarz 2 kwietnia 2021 przez fsfxvcxv Obywatel (1,160 p.)
ior
komentarz 2 kwietnia 2021 przez fsfxvcxv Obywatel (1,160 p.)
Generalnie chciałem zrobić to podobnym sposobem jak pan Mirosław Zelent w filmie https://www.youtube.com/watch?v=63QjKBcIySs&ab_channel=Pasjainformatyki W 11.00 minucie pokazany jest ten sposob

Podobne pytania

0 głosów
2 odpowiedzi 267 wizyt
0 głosów
1 odpowiedź 500 wizyt
+2 głosów
2 odpowiedzi 1,107 wizyt

93,387 zapytań

142,385 odpowiedzi

322,547 komentarzy

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

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...