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

Srednia artmetyczna co jest nie tak ?

Object Storage Arubacloud
0 głosów
135 wizyt
pytanie zadane 21 marca 2020 w SPOJ przez Sashimo Użytkownik (740 p.)

Ok nie mam pomysłu już czemu nie chce przyjąć

 

zadanie:https://pl.spoj.com/problems/PP0604A/

 

#include <iostream>
#include <cmath>

using namespace std;

int main()
{

      int t,n;
      cin>>t;
      for(int i=0; i<t; i++)
      {
          cin>>n;
          double *tablica=new double[n];
          double srednia=0;


        if ((n>0)&&(n<100))
        {


          for(int j=0; j<n; j++)
          {
              cin>>tablica[j];

              if ((tablica[j]>=0)&&(tablica[j]<=100))
              {
              srednia+=tablica[j];
              }
              else break;

          }

          srednia=srednia/n;

          double najmniejsza=tablica[0];

          for(int k=1;k<n;k++)
          {
              if((fabs(tablica[k]-srednia))<(fabs(tablica[k-1]-srednia)))
              najmniejsza=tablica[k];

          }

          cout<<najmniejsza<<endl;

        }

      }




    return 0;
}

 

komentarz 21 marca 2020 przez tkz Nałogowiec (42,000 p.)
Deklarujesz dynamicznie, a gdzie zwalniasz?
komentarz 21 marca 2020 przez Sashimo Użytkownik (740 p.)

blush


          cout<<najmniejsza<<endl;
        }
         delete [] tablica;
      }
    return 0;
}

tak jest dobrze ?

komentarz 21 marca 2020 przez tkz Nałogowiec (42,000 p.)
Tak.

1 odpowiedź

0 głosów
odpowiedź 21 marca 2020 przez Whistleroosh Maniak (56,980 p.)
wybrane 21 marca 2020 przez Sashimo
 
Najlepsza

Nie bardzo rozumiem na jakiej zasadzie wybierasz tę liczbę najbliższą średniej. Można łatwiej to zrobić tak, że trzymasz zmienną, w której znajduje się indeks do komórki, o wartości najblizszej średniej. I teraz linie 40. zamień na:

if((fabs(tablica[k]-srednia))<(fabs(tablica[best_id]-srednia)))
       best_id = k

Gdzie to best_id to zmienną o której mówiłem wyżej. Na początku powinna mieć wartość 0.

komentarz 21 marca 2020 przez Sashimo Użytkownik (740 p.)

jak mam  int best_id = k; przyrównać do zera jak k =1

 

for(int k=1;k<n;k++)
          {
              int best_id=0;
                best_id = k;
              if((fabs(tablica[k]-srednia))<(fabs(tablica[best_id]-srednia)))


              najmniejsza=tablica[k];

          }

tylko moim zdaniem to nie ma sensu

komentarz 21 marca 2020 przez Whistleroosh Maniak (56,980 p.)

Coś za bardzo komplikujesz. Tak wystarczy:

int best_id=0;
 
for(int k=1;k<n;k++)
{
      if((fabs(tablica[k]-srednia))<(fabs(tablica[best_id]-srednia)))
              best_id = k;
 }
 
   cout<<tablica[best_id]<<endl;

 

komentarz 21 marca 2020 przez Sashimo Użytkownik (740 p.)
ok zaliczyło ale muszę powiedzieć że nic już z tego nie rozumiem XD jutro to na spokojnie muszę przeanalizować

Podobne pytania

0 głosów
1 odpowiedź 153 wizyt
pytanie zadane 23 sierpnia 2018 w SPOJ przez Lviwer Nowicjusz (120 p.)
0 głosów
2 odpowiedzi 242 wizyt
pytanie zadane 10 kwietnia 2017 w C i C++ przez ChiriChiri Obywatel (1,260 p.)
0 głosów
2 odpowiedzi 186 wizyt

92,566 zapytań

141,420 odpowiedzi

319,615 komentarzy

61,952 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!

...