x-kom hosting

problem z zadaniem, wskaźniki

dorota08x
utworzono
utworzono

[color=#000000][font=Verdana, Arial, sans-serif][size=3]oto treść zadania: Napisz funkcję pierwsza_ujemna, która dostając jako parametry tablicę liczb całkowitych i[/size][/font][/color]
[color=#000000][font=Verdana, Arial, sans-serif][size=3]jej rozmiar, zwraca adres pierwszego w tablicy elementu ujemnego. Jeśli w tablicy nie występuje[/size][/font][/color]
[color=#000000][font=Verdana, Arial, sans-serif][size=3]element ujemny, funkcja zwraca NULL.[/size][/font][/color]
[color=#000000][font=Verdana, Arial, sans-serif][size=3]Napisz funkcję suma_ujemnych, która jako parametry przyjmuje tablicę liczb całkowitych oraz[/size][/font][/color]
[color=#000000][font=Verdana, Arial, sans-serif][size=3]jej długość, zaś zwraca sumę liczb ujemnych z tej tablicy. W rozwiązaniu należy wykorzystać[/size][/font][/color]
[color=#000000][font=Verdana, Arial, sans-serif][size=3]funkcję pierwsza_ujemna.[/size][/font][/color]
[color=#000000][font=Verdana, Arial, sans-serif][size=3]i moje rozwiazanie:[/size][/font][/color]
[color=#000000][font=Verdana, Arial, sans-serif][size=3]int *pierwsza_ujemna (int *t, int n)[/size][/font][/color]
[color=#000000][font=Verdana, Arial, sans-serif][size=3]{[/size][/font][/color]
[color=#000000][font=Verdana, Arial, sans-serif][size=3]for(int i=0; i<n; i++)[/size][/font][/color]
[color=#000000][font=Verdana, Arial, sans-serif][size=3]if(t[i]<0)[/size][/font][/color]

[color=#000000][font=Verdana, Arial, sans-serif][size=3]return &t[i];[/size][/font][/color]

[color=#000000][font=Verdana, Arial, sans-serif][size=3]return NULL;[/size][/font][/color]
[color=#000000][font=Verdana, Arial, sans-serif][size=3]}[/size][/font][/color]
[color=#000000][font=Verdana, Arial, sans-serif][size=3]int suma_ujemnych (int *t,int n)[/size][/font][/color]
[color=#000000][font=Verdana, Arial, sans-serif][size=3]{[/size][/font][/color]
[color=#000000][font=Verdana, Arial, sans-serif][size=3]int *a;[/size][/font][/color]
[color=#000000][font=Verdana, Arial, sans-serif][size=3]int suma_ujem=0;[/size][/font][/color]
[color=#000000][font=Verdana, Arial, sans-serif][size=3]while(a=pierwsza_ujemna(&t,n) ; // & jest operatorem adresu[/size][/font][/color]
[color=#000000][font=Verdana, Arial, sans-serif][size=3]{[/size][/font][/color]
[color=#000000][font=Verdana, Arial, sans-serif][size=3]suma_ujem+=*a;[/size][/font][/color]
[color=#000000][font=Verdana, Arial, sans-serif][size=3]n=n-(a-t+1);[/size][/font][/color]
[color=#000000][font=Verdana, Arial, sans-serif][size=3]t=a+1;[/size][/font][/color]
[color=#000000][font=Verdana, Arial, sans-serif][size=3]}[/size][/font][/color]
[color=#000000][font=Verdana, Arial, sans-serif][size=3]return suma_ujem;[/size][/font][/color]

[color=#000000][font=Verdana, Arial, sans-serif][size=3]}[/size][/font][/color]

[color=#000000][font=Verdana, Arial, sans-serif][size=3]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 [/size][/font][/color][img]http://fastpc.pl/images/smilies/win.gif[/img]

leggo
komentarz
komentarz

Zmień drugą funkcję na:
[CODE]
int suma_ujemnych (int *t,int n)
{
int *a;
int suma_ujem=0;
while((a=pierwsza_ujemna(t,n))!=NULL)
{
suma_ujem+=*a;
n-=(a-t)+1;
t=(a+1);
}
return suma_ujem;
}
[/CODE]

Wciąż szukasz rozwiązania problemu? Napisz teraz na forum!

Możesz zadać pytanie bez konieczności rejestracji - wystarczy, że wypełnisz formularz.

×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Strona wykorzystuje pliki cookies w celu prawidłowego świadczenia usług i wygody użytkowników. Warunki przechowywania i dostępu do plików cookies możesz zmienić w ustawieniach przeglądarki.