Witam,
Mam problem z wykonaniem pewnego zadania a dokładnie jego części.
Zadanie brzmi tak:
Napisz funkcję, której parametrem wejściowym jest tablica liczb rzeczywistych (tablica ta
zawiera liczby różne od zera, wartość 0 ustawiona jest w ostatnim elemencie tablicy). Wynikiem
funkcji jest adres utworzonej dynamicznie tablicy liczb całkowitych o rozmiarze odpowiadającej
tablicy wejściowej, poszczególne elementy tablicy wynikowej to –1 lub 1 (znak liczby
odpowiadającej liczby z tablicy wejściowej) i 0 ustawione na końcu tablicy.
Chciałbym się was zapytać, czemu program zwraca mi zły wynik. Nie proszę o całość, tylko o nakierowanie :)
Program wygląda tak:
#include <iostream> using namespace std; //Funkcja zwracająca adres tablicy (tablica zawiera znaki liczb -1 lub 1) int *znak(double *t, int n){ int *t1 = new int [n]; t1[n-1]=0; while(*t != 0){ if(*t < 0) *t1=-1; else *t1=1; t++; t1++; } return &*t1; } int main(){ cout<<"Podaj dlugosc tablicy (pamietaj, ze bedzie mniejsza o jeden element)\n"; int n; cin>>n; double *t = new double [n]; t[n-1]=0; for(int i=0; i<n-1; i++){ cout<<"Podaj "<<i+1<<" element tablicy rozny od 0\n"; cin>>t[i]; if(t[i] == 0){ cout<<"Element ma byc rozny od 0 ( x != 0 )\n"; while(t[i] == 0) cin>>t[i]; } } int *t1= new int [n]; *t1=*znak(t,n); for(int i=0; i<n; i++){ cout<<t1[i]<<" \n"; i++; } delete [] t; delete [] t1; return 0; }