|
Wygląd funkcji:
typ_zwracanej_wartości nazwa (argumenty) {
zmienne lokalne;
instrukcje;
return(wynik);
}
|
Przykład wykorzystanie funkcji:
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
float wczytaj(){
int a,b;
printf("Podaj a= ");
scanf("%d",&a);
printf("Podaj b= ");
scanf("%d",&b);
if (b!=0) return ((float)a/b);
else return (puts("b musi byc rozne od zera"));
}
int main(int argc, char *argv[])
{
float w;
w=wczytaj(); //wywołanie funkcji
printf("%f", w); //wyświetlenie tego co otrzymaliśmy z funkcji
}
/*
w przykładzie wykorzystano rzutowanie umówione w poprzednich artykułach
*/
|
Przykład parametry i arumenty funkcji:
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
int a,b;
long w;
long licz(int dol, int gora){ /*
musi sie zgadzać liczba argumentów, kolejność i typ
*/
long suma=0;
int i;
if (gora>=dol) {
for(i=dol;i<=gora;i++)
suma+=i;
return(suma);
}
return(0);
}
int main(int argc, char *argv[])
{
printf("Podaj a= ");
scanf("%d",&a);
printf("Podaj b= ");
scanf("%d",&b);
w=licz(a,b); //wywołanie funkcji
printf("%d", w); //wyświetlenie tego co otrzymaliśmy z funkcji
}
/*
program oblicza sume liczb z wybranego przedziału
*/
|
funkcja która nic nie zwraca:
void wys(int n) {
if (n<0) return(0); // nie chcemy wyświetlać liczb ujemnych
printf("Liczba=%d\n",n);
|
funkcja zerowania tablicy:
void zeruj(int tab[], int n) {
int i;
for (i=0;i<n;i++) tab[i]=0;
|
Przykład silnia z wykorzystaniem funkcji:
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
int x;
long z;
long silnia(int n){
if(n==1) return(1);
else return(n*silnia(n-1));
}
int main(int argc, char *argv[])
{
printf("Podaj x= ");
scanf("%d",&x);
z=silnia(x); //wywołanie funkcji
printf("%d", z); //wyświetlenie tego co otrzymaliśmy z funkcji
}
|
|