Cześc. Jedno z zadań polega na podaniu największego skoku temperatury, zaokrąglając przy tym liczby zawsze do góry. Wartości kolejnych temperatur znajdują się w tablicy ar1. Oto mój kod:
//--------------------Najwiekszy skok pogodowy dla stacji S1-------------------------
int skok;
int maxS=0; //maksymalny skok
for(int i=0;i<N;i++) //N jest liczba pomiarow
{
for(int j=i+1;j<N;j++)
{
skok=(ar1[i]-ar1[j])*(ar1[i]-ar1[j])/(j-i); //taki wzor na skok temperatury jest podany w tresci zadania
ceil(skok); //tutaj zaokraglam liczbe w górę
if(skok>maxS)
{
maxS=skok;
}
}
}
cout << endl << "Najwiekszy skok temperatury to: " << maxS << endl;
Jednak odpowiedź jest błędna, ponieważ zmienna "maxS" ma wartość 24 a w odpowiedziach jest 25. Kod zaproponowany w rozwiązaniu to:
//--------------------Najwiekszy skok pogodowy dla stacji S1-------------------------
int skok;
int maxS=0;
int kwadrat;
for(int i=0;i<N;i++)
{
for(int j=i+1;j<N;j++)
{
kwadrat=(ar1[i]-ar1[j])*(ar1[i]-ar1[j]);
skok=kwadrat/(j-i);
if(skok*(j-i)<kwadrat)
{
skok++;
}
if(skok>maxS)
{
maxS=skok;
}
}
}
cout << endl << "Najwiekszy skok temperatury to: " << maxS << endl;
Tutaj wartość "maxS" to 25. Mógłby mi ktoś wytłumaczyć, gdzie zrobiłem błąd? Jeżeli brakuje jakichkolwiek danych to przepraszam, proszę dać znać i od razu podeślę. :) Pozdrawiam.