Liczenie średniej liczb i wyznaczanie liczby najbliższej średniej – problem z liczbami ujemnymi

Odpowiedz Nowy wątek
2018-08-08 20:40
0

Próbuje przebrnąć przez kurs pana Zalenta i podczas 11 lekcji zadał on zadanie domowe: Mam napisać program który liczy średnią z pięciu liczb po czym znajduje liczbę z tych pięciu najbardziej zbliżoną do średniej. Wiem jest rozwiązanie na internecie ale chciałbym żeby to był moj autorski pomysł. Pisałem już 4 kody i cały czas ginę w jednym miejscu.. wymyśliłem że odejmę liczby od średniej i tak otrzymam wartość jaka różni daną liczbę od średniej ale problem pojawia się gdy dana liczba jest minusowa nie potrafię przekształcić jej na dodatnią wychodzą mi jakieś dziwne wyniki albo zero.
To jest kod w którym próbowałem użyć tablic:

#include <iostream>
 
using namespace std;
int liczby[5];
int srednia=0;
int srednia1=0;
int roznice[5];
int liczbaMinusowa=-1;
int main()
{
    for (int i =0;i<5;i++){
        cout<<endl<<"Podaj "<<i+1<<" liczbe do sredniej: ";
        cin >> liczby[i];
    }
    for (int i=0;i<5;i++){
        srednia+=liczby[i];
      srednia1=srednia/5;
    }
    cout <<"srednia"<<srednia1<<endl;
    {
        for (int i =0;i<5;i++){
            roznice[i]=liczby[i+1-srednia1];
            if (roznice[i]<0){
                roznice[i]=-roznice[i];
            }
                 else
                    roznice[i]=roznice[i];
        }
        cout<<"roznica: "<<roznice[1];
    }
 
    return 0;
}

A tu jest tzw kamieniologia ale i ona nie pomogła:

#include <iostream>
 
using namespace std;
int liczby[5];
int sumaLiczbWtablicy=0;
int srednia;
int roznica[5];
int daneDoPorownania[5];
int liczbaMinusowa=(-1);
 
int main()
{
    for (int i=0; i<5; i++){
        cout<<endl<<"Podaj "<<i+1<<" liczbe do sredniej: ";
        cin >> liczby[i];
    }
    sumaLiczbWtablicy=0;
    for (int i =0; i<5; i++){
        sumaLiczbWtablicy +=liczby[i];
    }
    cout <<"Suma liczb z tablic: "<<sumaLiczbWtablicy;
    srednia=sumaLiczbWtablicy/5;
    cout << "Srednia to: " <<srednia;
    {
        roznica[1]=roznica[1]-srednia;
        if (roznica[1]<0){
            roznica[1]=-roznica[1];
        }
        else roznica[1]=roznica[1];
 
        roznica[2]=liczby[2]-srednia;
        if (roznica[2]<0){
            roznica[2]*(-1);
        }
        else roznica[3]=roznica[3];
 
        roznica[3]=liczby[3]-srednia;
        if (roznica[3]<0){
            roznica[3]*(-1);
        }
        else roznica[4]=roznica[4];
 
        roznica[4]=liczby[4]-srednia;
        if (roznica[4]<0){
            roznica[4]*(-1);
        }
        else roznica[4]=roznica[4];
 
        roznica[5]=liczby[5]-srednia;
        if (roznica[5]<0){
            roznica[5]*(-1);
        }
        else roznica[5]=roznica[5];
    }
    cout <<"roznica 1:"<<roznica[1];
 
    return 0;
}

Juz naprawiłem

edytowany 4x, ostatnio: furious programming, 2018-08-08 22:47
brakuje tagu #rakcontent - vpiotr 2018-08-09 06:52

Pozostało 580 znaków

2018-08-10 17:16
0
Misza_71 napisał(a):

Inta użyłem celowo.

Szczerze mówiąc to BARDZO wątpię. Jeśli celowo, to pewnie potrafisz to jakos uzasadnić?

wychodzą mi jakieś dziwne wyniki albo zero

j/w

Dawno już nie miałem styczności z książkami/kursami początkującymi, ale a) albo jest fatalny b) albo cofnij się z tej jedenastej lekcji i to dużo.

edytowany 2x, ostatnio: AnyKtokolwiek, 2018-08-10 17:23

Pozostało 580 znaków

2018-08-10 17:34
0

https://wandbox.org/permlink/hrCypcCkLIU12d9O
https://wandbox.org/permlink/LL6tTx1SLwIylYn8


Jeśli chcesz pomocy, NIE pisz na priva, ale zadaj dobre pytanie na forum.
edytowany 1x, ostatnio: MarekR22, 2018-08-10 17:37

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0