02.01.2013, 16:52
oto treść zadania: Napisz funkcję pierwsza_ujemna, która dostając jako parametry tablicę liczb całkowitych i
jej rozmiar, zwraca adres pierwszego w tablicy elementu ujemnego. Jeśli w tablicy nie występuje
element ujemny, funkcja zwraca NULL.
Napisz funkcję suma_ujemnych, która jako parametry przyjmuje tablicę liczb całkowitych oraz
jej długość, zaś zwraca sumę liczb ujemnych z tej tablicy. W rozwiązaniu należy wykorzystać
funkcję pierwsza_ujemna.
i moje rozwiazanie:
int *pierwsza_ujemna (int *t, int n)
{
for(int i=0; i<n; i++)
if(t[i]<0)
return &t[i];
return NULL;
}
int suma_ujemnych (int *t,int n)
{
int *a;
int suma_ujem=0;
while(a=pierwsza_ujemna(&t,n) ; // & jest operatorem adresu
{
suma_ujem+=*a;
n=n-(a-t+1);
t=a+1;
}
return suma_ujem;
}
czy mógłby mi ktos to poprrawic aby bylo dobrze bo sama nie wiem na czym polega błąd. z góy dzieki za odpowiedz
jej rozmiar, zwraca adres pierwszego w tablicy elementu ujemnego. Jeśli w tablicy nie występuje
element ujemny, funkcja zwraca NULL.
Napisz funkcję suma_ujemnych, która jako parametry przyjmuje tablicę liczb całkowitych oraz
jej długość, zaś zwraca sumę liczb ujemnych z tej tablicy. W rozwiązaniu należy wykorzystać
funkcję pierwsza_ujemna.
i moje rozwiazanie:
int *pierwsza_ujemna (int *t, int n)
{
for(int i=0; i<n; i++)
if(t[i]<0)
return &t[i];
return NULL;
}
int suma_ujemnych (int *t,int n)
{
int *a;
int suma_ujem=0;
while(a=pierwsza_ujemna(&t,n) ; // & jest operatorem adresu
{
suma_ujem+=*a;
n=n-(a-t+1);
t=a+1;
}
return suma_ujem;
}
czy mógłby mi ktos to poprrawic aby bylo dobrze bo sama nie wiem na czym polega błąd. z góy dzieki za odpowiedz