[C] Funkcja ze wskaźnikami(parzystość i czy dana jest cyfra)

AndrzejMath_h
Użytkownik
Użytkownik
Posty: 66
Rejestracja: 22 gru 2013, o 01:15
Płeć: Mężczyzna
Lokalizacja: Łódź
Podziękował: 12 razy

[C] Funkcja ze wskaźnikami(parzystość i czy dana jest cyfra)

Post autor: AndrzejMath_h »

Mam do zrobienia program w języku C,który ma zawierać funkcję,która sprawdza czy podane dane to cyfry i czy dana liczba jest parzysta).Ma ona być typu void.Wewnątrz funkcji nie można wypisywać żadnych komunikatów.Nie mam pojęcia jak wywołać tą funkcję w mainie,jak to zrobić,żeby to działało.
Proszę o pomoc w tym zadaniu.
Oto co mam:

Kod: Zaznacz cały

#include<stdio.h>
#include<conio.h>
int main(void)
{
//Tutaj jest jakaś zmienna typu int np.int x;
//jakis wskaznik zaincjalizowany int *wsk;
//wskaznik pokazujacy na zmienna wsk=&x;
//jakies zmienne typu int wynik1,wynik2;
//domyślam,że to tu ma być wynik1=jakas_funkcja(...nie wiem co tu wpisac jak wywolac te funkcje)
getch();

}

void jakas_funkcja(int number,int *pointer1,int *pointer2)
{
   
    if(number%2==0) *pointer1=1;
    else *pointer1=0;
    if(number>-10 && number<10) *pointer2=1;
    else *pointer2=0;
    
}

Ostatnio zmieniony 12 mar 2014, o 11:41 przez Afish, łącznie zmieniany 1 raz.
Powód: Poprawa wiadomości.
Afish
Moderator
Moderator
Posty: 2828
Rejestracja: 15 cze 2008, o 15:45
Płeć: Mężczyzna
Lokalizacja: Seattle, WA
Podziękował: 3 razy
Pomógł: 356 razy

[C] Funkcja ze wskaźnikami(parzystość i czy dana jest cyfra)

Post autor: Afish »

Funkcja ma być void, więc nie możesz nic z niej zwrócić. Przyjmij wskaźnik na miejsce na wynik jako argument funkcji i tam zapisz rezultat.
AndrzejMath_h
Użytkownik
Użytkownik
Posty: 66
Rejestracja: 22 gru 2013, o 01:15
Płeć: Mężczyzna
Lokalizacja: Łódź
Podziękował: 12 razy

[C] Funkcja ze wskaźnikami(parzystość i czy dana jest cyfra)

Post autor: AndrzejMath_h »

a mógłbyś to jakoś zaobrazować?bo nie wiem za bardzo jakby to miało wyglądać i jak to wyświetlić.
Afish
Moderator
Moderator
Posty: 2828
Rejestracja: 15 cze 2008, o 15:45
Płeć: Mężczyzna
Lokalizacja: Seattle, WA
Podziękował: 3 razy
Pomógł: 356 razy

[C] Funkcja ze wskaźnikami (parzystość i czy dana jest cyfra

Post autor: Afish »

Kod: Zaznacz cały

#include <cstdio>

void FunctionThatCannotReturnAnyResultBecauseIsVoid(int *);

int main(){
   int result = 0;
   FunctionThatCannotReturnAnyResultBecauseIsVoid(&result);
   printf("%d
", result); // Prints 123
   return 0;
}

void FunctionThatCannotReturnAnyResultBecauseIsVoid(int *result){
   *result = 123; // We set our variable to 123 and use it as a return value
}
AndrzejMath_h
Użytkownik
Użytkownik
Posty: 66
Rejestracja: 22 gru 2013, o 01:15
Płeć: Mężczyzna
Lokalizacja: Łódź
Podziękował: 12 razy

[C] Funkcja ze wskaźnikami(parzystość i czy dana jest cyfra)

Post autor: AndrzejMath_h »

Ok to rozumiem,ale tutaj mam trzy argumenty funkcji.Jakie mam podać pozostałe 2 argumenty przy wywołaniu funkcji w mainie?
Afish
Moderator
Moderator
Posty: 2828
Rejestracja: 15 cze 2008, o 15:45
Płeć: Mężczyzna
Lokalizacja: Seattle, WA
Podziękował: 3 razy
Pomógł: 356 razy

[C] Funkcja ze wskaźnikami(parzystość i czy dana jest cyfra)

Post autor: Afish »

Przecież to Ty napisałeś tę funkcję, więc powinieneś wiedzieć, co chciałeś do niej przekazać.
AndrzejMath_h
Użytkownik
Użytkownik
Posty: 66
Rejestracja: 22 gru 2013, o 01:15
Płeć: Mężczyzna
Lokalizacja: Łódź
Podziękował: 12 razy

[C] Funkcja ze wskaźnikami(parzystość i czy dana jest cyfra)

Post autor: AndrzejMath_h »

No właśnie nie wiem jak mam tą funkcję wywołać w mainie i wyświetlić na ekranie.Załóżmy,że zmienna wynik1 miałaby odpowiadać za parzystość liczb,a zmienna wynik2 za to czy dana to cyfra.Funkcja nie zwraca żadnej wartości,więc nie wiem jak mam tej funkcji przypisać do zmiennej wynik1 i wynik2.Poza tym funkcja przyjmuje trzy argumenty także nie mam pojęcia jakbym to miał rozdzielić.Proszę o jakąś podpowiedź.
Afish
Moderator
Moderator
Posty: 2828
Rejestracja: 15 cze 2008, o 15:45
Płeć: Mężczyzna
Lokalizacja: Seattle, WA
Podziękował: 3 razy
Pomógł: 356 razy

[C] Funkcja ze wskaźnikami(parzystość i czy dana jest cyfra)

Post autor: Afish »

Pierwszy argument funkcji to int, więc przekazujesz normalnego inta przez wartość. Dwa następne są wskaźnikami, więc musisz przekazać adresy zmiennych. Przypisanie wartości w miejsce wskazywane przez wskaźnik masz chociażby w moim kodzie powyżej.
Osobną kwestią jest, że sprawdzanie, czy int składa się z samych cyfr jest raczej bez sensu. Zapewne miałeś tam przyjąć łańcuch znakowych (czyli tablicę charów lub też wskaźnik na char).
AndrzejMath_h
Użytkownik
Użytkownik
Posty: 66
Rejestracja: 22 gru 2013, o 01:15
Płeć: Mężczyzna
Lokalizacja: Łódź
Podziękował: 12 razy

[C] Funkcja ze wskaźnikami(parzystość i czy dana jest cyfra)

Post autor: AndrzejMath_h »

Ok dzięki,wiem już o co chodzi,nie do końca zrozumiałem prowadzącego.
Gouranga
Użytkownik
Użytkownik
Posty: 1592
Rejestracja: 16 maja 2013, o 17:56
Płeć: Mężczyzna
Lokalizacja: Trójmiasto
Podziękował: 11 razy
Pomógł: 246 razy

[C] Funkcja ze wskaźnikami(parzystość i czy dana jest cyfra)

Post autor: Gouranga »

Jakby były jakieś problemy jeszcze to pisz na pw, C to akurat moja działka.
ODPOWIEDZ