dorota08x utworzono 2 stycznia 2013 utworzono 2 stycznia 2013 [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 2 stycznia 2013 komentarz 2 stycznia 2013 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.