problem z algorytmem wyliczania sredniej w c++

0

Witam chciałbym prosić o pomoc w napisaniu programu "ktory wyznacza srednią z ilosci wartosci wprowadzonych z klawiatury liczba danych wprowadzonych do programu jest wpisywana jako pierwsza dana do programu po czym następuje wprowadzanie kolejnych liczb z ktorych nalezy obliczyc srednia" Próbuje zrobić to przez polecenie for jednak ciągle wyskakują mi jakies błedy :(

0

pokaz kod

0

Wklej kod i wyskakujące błędy, nikt nie jest jasnowidzem.

0

nie bardzo tez rozumiem o co chodzi w tym poleceniu, ale probuje napisac dobre polecenie na dwa sposoby
1)

 int main(int argc, char* argv[])
{
float a;
float suma=0;
char s;
int i=0;
do
{
cout<<"Podaj wartosc: ";
cin>>a;
i++;
suma=suma+a;
cout<<"Wprowadzasz kolejna wartosc czy chcesz obliczyc srednia z wprowadzonych liczb?"<<endl<<"w=wartosc s=srednia"<<endl;
s=getch();
}
while (s=='w');
{
cout<<"srednia= "<<suma/i<<endl;
}
getch();
}
int main(int argc, char* argv[])
{
randomize();
int dane [50];
int suma=0;
float srednia=0;
float s;
int N=50;
for (int i = 0; i < 50; i++)
{
dane[ i ] = random(51)+20;
cout<<setw(5)<<dane[ i ];
suma=suma+dane[ i ];
}
srednia=(float)suma/50;
cout<<endl<<"Srednia wynosi: "<<srednia<<endl;
for(int i=0;i<N;i++)
{
suma=suma+pow(dane[i]-srednia,2);
s=pow(suma/N-1,0.5);
}
cout<<"S rowna sie: "<<s<<endl;
getch();
        return 0;
}
0

Najpierw wczytaj ilość liczb z których ma byc policzona średnia, następnie zadeklaruj tablice o takim rozmiarze.

 int n;
scanf("%d", &n);
int a[n];
0
m.zoltowski napisał(a)

Najpierw wczytaj ilość liczb z których ma byc policzona średnia, następnie zadeklaruj tablice o takim rozmiarze.

 int n;
scanf("%d", &n);
int a[n];
 
scanf("%d",&n")
int *a=new int[n]

tak chyba powinno to wyglądać jak juz .

 
co do problemu moze by tak ?
#include <iostream>
#include <stdlib.h>
using namespace std;
int main()
{
    int n=0;
    int a=0;
    int suma=0;
    double srednia=0
    cin >> n;
    
    for (int i=1;i<=n;i++)
    {
 
        cin  >>  a;
        suma = suma +a; 
        srednia=suma/i;

    }
    cout << srednia << endl;
    system("pause");
    return 0;
}
0

Kod jest błędny. Daje np. takie wyniki

2
2000000000
2000000000
-1.47484e+008

2
3
4
3

Dwie możliwości naprawy:

#include <iostream>
#include <stdlib.h>
using namespace std;
int main()
{
    int n=0;
    int a=0;
    float suma=0;
    cin >> n;

    for (int i=1;i<=n;i++)
    {

        cin  >>  a;
        suma = suma +a;
    }
    cout << suma/n << endl;
    return 0;
}
#include <iostream>
#include <stdlib.h>
using namespace std;
int main()
{
    int n=0;
    int a=0;
    double srednia=0;
    cin >> n;

    for (int i=1;i<=n;i++)
    {

        cin  >>  a;
        srednia=(srednia*(i-1))/i+((double)a)/i;

    }
    cout << srednia << endl;
    return 0;
}
0

nie testetowałem kodu , starałem sie tylko schemat zachować i faktycznie nie potrzebnie srednia w petli ;) ale wydawalo mi sie ze koleg chcial wyliczac srednia z danych liczb ktore juz wprowadził mniejsza o to...

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