• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Funkcje + wskaźniki

VPS Starter Arubacloud
0 głosów
244 wizyt
pytanie zadane 4 stycznia 2017 w C i C++ przez Dawid Sobierajski Nowicjusz (170 p.)

Miałem za zadanie napisać 2 funkcje pierwsza z pobranych od użytkownika w main danych tzn ilości liczb i przedziału od a do b wypełnia losowymi liczbami tablice następnie 2 funkcja wybiera liczby nieujemne i tworzy z nich nową tablice pierwsza jest w porządku natomiast z drugą mam problem

void wypelnienie(int tab[],int n,int a,int b)
{
	int i,*p;
	p=tab;
	for(i=0;i<n;i++)
	{
		*(p+i)=a+rand()%(b-a+1);
		printf("%d ",*(p+i));
	}
}
void *nowa(int *n,int k) //Ćwiczeniowiec mówił że ma to wyglądać tak: void *nowa(int n)
{                        //ale nie mam zielonego pojęcia jak zrobic w ten sposob
	int *t,i,j=0;

	for(i=0;i<k;i++)
	{
	    if(n+i>=0)
        {
            j++;
        }
	}
	t=malloc(j*sizeof(int));
	j=0;
	for(i=0;i<k;i++)
	{
	    if(n+i>=0)
        {
            j++;
            *(t+j)=*(n+i);
        }
	}
}

 

komentarz 4 stycznia 2017 przez Patrycjerz Mędrzec (192,340 p.)
Posiadasz wybrakowaną klawiaturę, że nie możesz napisać ani jednego znaku kropki lub przecinka?!
komentarz 4 stycznia 2017 przez morele123 Gaduła (4,790 p.)
Co to znaczy void *nowa ?? Jeszcze się nie spotkałem z funkcją, która jest wskaźnikiem.
komentarz 4 stycznia 2017 przez Dawid Sobierajski Nowicjusz (170 p.)
@Patrycjerz

Widzę, że policja interpunkcyjna działa w internecie nadal. Nie nie mam wybrakowanej klawiatury i mogę pisać kropki i przecinki. Tylko nie wiem, po co tak roztrząsasz braki znaków interpunkcyjnych, zamiast normalnie odpowiedzieć na zadane pytanie...
komentarz 4 stycznia 2017 przez Dawid Sobierajski Nowicjusz (170 p.)
@morele123

Właśnie mi też tak coś nie pasowało, ale kazał tak zrobić to próbowałem...
1
komentarz 4 stycznia 2017 przez Patrycjerz Mędrzec (192,340 p.)

Z paru powodów:

  1. Takie zachowanie łamie forumowy regulamin, gwoli ścisłości podpunkt II 1 G.
  2. Takiego typu treści nie da się wygodnie czytać, trzeba domyślać się, co autor miał na myśli i przez to niepotrzebnie się męczyć.
  3. Jest po prostu nie na miejscu pisać takie potworki w miejscach publicznych.
  4. Przynajmniej dla mnie, czytając tego typu pytanie, odczuwam, że jego autor ma w nosie drugą osobę, która ma chęć pomóc, a forum utożsamia z generatorem odpowiedzi, jakby wypluwała je maszyna.

Cieszę się, że masz w pełni sprawną klawiaturę, ale opamiętajmy się i szanujmy nasz ojczysty język, przynajmniej w takich miejscach jak publiczne forum (prywatnie wolna amerykanka).

komentarz 4 stycznia 2017 przez morele123 Gaduła (4,790 p.)
A mi to nie przeszkadza, póki autor pisze z sensem. Zachowywanie w pełni zasad j. polskiego nie ma większego sensu, bo używamy tu mimo wszystko języka mówionego, a nie pisanego.
komentarz 4 stycznia 2017 przez Patrycjerz Mędrzec (192,340 p.)
Nie popadajmy w skrajności… Sam czasami popełniam błędy w pisowni i nie umieram z tego powodu, ale jeśli te błędy powodują problemy ze zrozumieniem pytania (tutaj owszem tak było, nikły opis problemu dolewał oliwy do ognia), to chyba świadczy to o tym, że coś jest na rzeczy.

Mój postulat jest taki, aby zaczynać zdania dużą literą oraz stosować gdzieniegdzie te przecinki i kropki — o polskich znakach nawet nie wspominam, chodzi jedynie o klarowność przekazu.

1 odpowiedź

0 głosów
odpowiedź 4 stycznia 2017 przez Patrycjerz Mędrzec (192,340 p.)
edycja 4 stycznia 2017 przez Patrycjerz

Zapewne chodzi o to, że funkcja nowa zwraca *void, zaś przy wywołaniu tej funkcji masz zrzutować adres od niej pochodzący na typ *int.

komentarz 4 stycznia 2017 przez Dawid Sobierajski Nowicjusz (170 p.)
Znaczy ogólnie zamysł był taki, że (przynajmniej tak zrozumiałem) po wypełnieniu tablicy pierwotnej liczbami z przedziału pobranego od użytkownika, funkcja nowa tworzy nową tablicę złożoną z samych nieujemnych wartości ( >=0 ) i w funkcji głównej mam zrzutować adres pierwszej komórki tej tablicy na jakiś wskaźnik np. int *p; . Tylko no właśnie jest taki problem, że program po wypisaniu liczb z tablicy pierwotnej się "wykrzacza".
komentarz 4 stycznia 2017 przez Patrycjerz Mędrzec (192,340 p.)
Ale skąd funkcja "nowa" pobiera wartości? Z tablicy wypełnionej za pomocą funkcji "wypelnienie"? Po drugie twój kod posiada chyba błąd, gdyż porównujesz wartości wskaźników, a nie wartości, na które wskazują. Wg mnie przy 17 i 26 linijce brakuje operatora wyłuskania.
komentarz 4 stycznia 2017 przez Dawid Sobierajski Nowicjusz (170 p.)
Tak z tablicy wypełnionej za pomocą funkcji wypełnienie. A te 2 błędy poprawiłem, ale i tak niestety to nic nie dało.
komentarz 4 stycznia 2017 przez Patrycjerz Mędrzec (192,340 p.)
Pokaż najlepiej cały kod.

Podobne pytania

0 głosów
2 odpowiedzi 826 wizyt
pytanie zadane 16 marca 2020 w C i C++ przez Hubertius Bywalec (2,970 p.)
0 głosów
3 odpowiedzi 173 wizyt
pytanie zadane 13 października 2016 w C i C++ przez Evelek Nałogowiec (28,960 p.)
0 głosów
2 odpowiedzi 146 wizyt
pytanie zadane 12 stycznia 2016 w C i C++ przez Lukasz95 Bywalec (2,160 p.)

92,453 zapytań

141,262 odpowiedzi

319,086 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...