Program do znajdywania najbliższej liczby do podanej

0

Witam :) . Wymyśliłem sobie taki programik jak w tytule, który po podaniu mu liczb do tablicy z palca wyciąga z tych liczb średnią. Następnie szuka najbliższej liczby do tej średniej z tych wcześniej podanych cyfr. Program musi uwzględniać liczby zmiennoprzecinkowe oraz ujemne. Napisałem wszystko poza ostatnim pkt tzn. odnajdywanie najbliższej do średniej. Gdy kombinuje z if'em i różnica pomiędzy kolejnymi cyframi a średnią zapętlam się hehe Doradźcie mi coś proszę o jakąś podpowiedz :)

0

Pokaż kod, to Ci powiemy gdzie masz błąd..

0
float najblizsza=tab[0];
for(int i=1;i<n;i++)
     if(abs(srednia-najblizsza)>abs(srednia-tab[i])
          najblizsza=tab[i];
0

szuka najbliższej liczby

Jak rozumiesz "najbliższa liczba"?
Jaka jest "najbliższa liczba" dla 10.50, a jaka dla 120?

0

Z ręki podaje do tablicy np 4,5,10,7 średnia z tego 6,5 najbliższa 6,5 z wcześniej podanych to 7 I t ma robić program .

0

Po prostu zaokrąglij liczbę?
Poza tym, jaka jest najbliższa liczba dla 10?

0

przeczytaj mój wcześniejszy post dokładnie program ma wyszukać najbliższą do średniej z podanych przeze mnie wcześniej a najbliższa do średniej z podanych to 7.

0

Najprostsze rozwiązanie, napisane na podstawie mojego komentarza, o którym powiedziałeś "nie.."

#include <iostream>
#include <cmath>
using namespace std;
int main(){
    int n,index=0;
    cin>>n;
    float *tab=new float[n];
    float suma=0;
    for(int i=0;i<n;i++){
        cin>>tab[i];
        suma+=tab[i];
    }
    suma = suma/n;
    float ab = abs(tab[0]-suma);
    for(int i=1;i<n;i++){
        if(ab>abs(tab[i]-suma)){
            ab = abs(tab[i]-suma);
            index = i;
        }
    }
    cout<<"index: "<<index<<"\nLicbza: "<<tab[index]<<"\nabs: "<<abs(tab[index]=suma)<<endl;
    delete[]tab;
    return 0;
}

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.