C++, suma liczb na tablicy, program zamyka się

0

Witam,
próbuję napisać program w C++ liczący współczynnik korelacji dla szeregu dwóch zmiennych i mam problem z poprawnym wpisaniem instrukcji, żeby program liczył sumę liczb wpisanych w tablicę jednowymiarową. Drugi problem jest taki, że program zamyka sie Od razu po wpisaniu par zmiennych. Szukałam na forum jak zrobić, żeby program się nie zamykał ale nadal nie mogę tego zrobic, mimo moich wszelkich starań on i tak się ciagle zamyka!
proszę o pomoc kogoś kto wie jak to poprawić, bo ja już nie mam pomysłu, program mam na zaliczenie, nigdy wcześniej nie programowałam niczego i mam już tego dośćSmutek nie licze na gotowca, proszę o poprawkę, dopisanie czego brakuje
pozdrawiam,
Aneta

#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <iostream.h>
#include <conio.h>
#pragma hdrstop

double n; // deklaracja zmiennych

using namespace std;
int main()
{
cout << endl << "Podaj liczbe par" << endl;
cin >> n;
{
if (n < 3)
cout << "Za mało danych" << endl;
if (n >= 3)
cout <<" Podaj dane (x,y)" << endl;
}
int LongxArray [100];
int LongyArray [100];
int i;
for ( i=0; i<n; i++) // 0-n
{
std::cout << "Wartosc elementu x[" << i << "]: ";
std::cout << "Wartosc elementu y[" << i << "]: ";
std::cin >> LongxArray[i];
std::cin >> LongyArray[i];
}
for (i = 0; i<n; i++)
std::cout << i << ": " << LongxArray[i] << "\n";
{
}
for (i = 0; i<n; i++)
std::cout << i << ": " << LongyArray[i] << "\n";
}


double sr( int LongxArray[100], int n) {
double suma = 0;
for (int i = 0; i < n; i++) {
suma = (suma + LongxArray[i++]);

std::cout << "suma" << (suma) <<"\n";

}


{
}
getch();
fflush(stdin);
int x;
std::cin >> x;

return 0;
} 
0

Jeden blad masz tutaj

suma = (suma + LongxArray[i++]);

powinno byc po prostu

suma = (suma + LongxArray[i]);

A funkcja powinna mniej wiecej tak wygladac(i byc zadeklarowana ponad funkcja main, lub zdefiniowana ponad a zadeklarowana gdzie indziej) :

double sr( int Array[], int n) {
double suma = 0;
for (int i = 0; i < n; i++) {
suma = (suma + LongxArray[i]); 
return suma;
}

to zupelnie wywal :

fflush(stdin);
int x;
std::cin >> x;
0

Następnym razem dobrze jest pisać komentarze w kodzie - szczególnie, gdy prosisz kogoś o pomoc - łatwiej analizować kod i zamysł co autor miał na myśli.
Pierwsze pytanie jakie można tutaj zadać to co jeśli ktoś będzie miał próbę większą od 100? - No właśnie! Dlatego lepszym rozwiązaniem jest albo użycie vectora albo użycie operatora new do zadeklarowania tablicy o odpowiedniej wielkości.
Bardzo ciekawa jest również funkcja do liczenia owej sumy - co tam robi podwójna inkrementacja (raz w warunku a raz w ciele pętli for?

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.