Puchacz1 Opublikowano 18 Kwietnia 2011 Zgłoś Opublikowano 18 Kwietnia 2011 jak w temacie, wprowadzam dane raz w taki sposób: long double *wprowadz(){ long double wprowadzone[9] = {0}; while(wprowadzone[0]<2 || wprowadzone[0]>7) { cout << "Podaj liczbę węzłów (min. 2, max.7)" << endl; cin >> wprowadzone[0]; } // cout << "podaj współczynnik a: " << endl; cin >> wprowadzone[1]; cout << "podaj potege x: " << endl; cin >> wprowadzone[2]; // cout << "podaj współczynnik a: " << endl; cin >> wprowadzone[3]; cout << "podaj potege x: " << endl; cin >> wprowadzone[4]; // cout << "podaj współczynnik a: " << endl; cin >> wprowadzone[5]; cout << "podaj potege x: " << endl; cin >> wprowadzone[6]; // cout << "podaj poczatek przedzialu: " << endl; cin >> wprowadzone[7]; cout << "podaj koniec przedzialu" << endl; cin >> wprowadzone[8]; return wprowadzone;}2 sposób sprawdza poprawność wyników: long double dane[9] = {7,15,4,32,15,-1,1,2,5};i ten drugi sposób działa, a ten pierwszy daje wyniki z kosmosu... tak jest to wywoływane: int main(){ //long double *dane = wprowadz(); long double dane[9] = {7,15,4,32,15,-1,1,2,5}; int n = dane[0]; int a = dane[7]; int b = dane[8]; long double *x = zbiornik(n, a, b); long double wynik = (czebyszew(x, a, b, n, dane)*(b-a))/n; printf("Twoim wynikiem jest: %1.10Lf", wynik); return 0;}dlaczego wprowadzając dane na te 2 sposoby otrzymuje całkiem różne wyniki? sorki za trucie d*py Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Quad Opublikowano 19 Kwietnia 2011 Zgłoś Opublikowano 19 Kwietnia 2011 long double wprowadzone[9] = {0};To jest prawdopodobnie problem, uzyj new. Druga sprawa, ze nie jestem pewien czy tablica stworzona wewnatrz funkcji moze byc bezpiecznie uzywana poza nia (w c/c++). Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...