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

Średnia arytmetyczna-Spoj

42 Warsaw Coding Academy
0 głosów
1,946 wizyt
pytanie zadane 23 marca 2016 w C i C++ przez dartespl Użytkownik (830 p.)

Witam! Wszystkie przykłady w zadaniu Średnia arytmetyczna (http://pl.spoj.com/problems/PP0604A/) wychodzą mi dobrze, a jednak sędzia wyrzuca mi błąd.

Btw. (Sory za niechlujny kod)

 

#include <iostream>
#include <cmath>

using namespace std;

double sredniaAryt(int tab[], int z)
{
    double suma=0;
    for(int i=0; i<z; ++i) suma+=tab[i];
    return suma/z;
} 

int jaka(int *tab, int x)
{
    double srednia=sredniaAryt(tab,x);

    double tablica[x]; for(int j=0; j<x; ++j) tablica[j]=tab[j];
    for (int i=0; i<x; ++i) tablica[i]=fabs(tablica[i]-srednia);
    int najmniejsza=tab[0];
    for(int j=1; j<x; ++j) {if (tablica[j]<tablica[j-1]) najmniejsza=tab[j];}
    return najmniejsza;
}

int main()
{
int ile,liczb;
cin>>ile;
for(int i=1; i<=ile; i++)
{
  cin>>liczb;
  int *tablica=new int [liczb];
  for(int j=0; j<liczb; ++j) cin>>tablica[j];
  cout<<jaka(tablica,liczb)<<endl;
  delete [] tablica;
}
return 0;
}

 

3 odpowiedzi

0 głosów
odpowiedź 23 marca 2016 przez Aisekai Nałogowiec (42,190 p.)
Nie wiem czemu, nie chce mi się zagłębiać w kod, jak wpisuję np. 3 - mam do wypisania 4 elementy. Jak wpiszesz 1 - musisz podać 2 elementy i Ci od razu crashuje. Może tu jest błąd?
0 głosów
odpowiedź 23 marca 2016 przez CzlowiekSkrypt Nałogowiec (26,340 p.)
Tak z innej beczki - można tam przesyłać rozwiązania w JS/PHP ? Bo widzę że to głównie dotyczy C/C++
komentarz 23 marca 2016 przez dartespl Użytkownik (830 p.)
Jest taka opcja
0 głosów
odpowiedź 23 marca 2016 przez dartespl Użytkownik (830 p.)

To jest łatwiejsza i bardziej czytelna wersja

#include <iostream>
#include <math.h>
using namespace std;

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

      double najmniejsza=tablica[0];
      for(int j=1;j<n;++j)
      {
      if((fabs(tablica[j]-srednia))<(fabs(tablica[j-1]-srednia))) najmniejsza=tablica[j];
      }
      cout<<static_cast<int>(najmniejsza)<<endl;

      delete [] tablica;
  }
    return 0;
}

 

Podobne pytania

0 głosów
2 odpowiedzi 480 wizyt
0 głosów
1 odpowiedź 670 wizyt
0 głosów
1 odpowiedź 1,073 wizyt
pytanie zadane 10 sierpnia 2020 w SPOJ przez AgentTecza Obywatel (1,810 p.)

93,389 zapytań

142,385 odpowiedzi

322,547 komentarzy

62,749 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
...