Menu
Coddy logo textTech

Funkcja wariadyczna

Lekcja 10 z 17 w kursie Funkcje w C w Coddy.

W języku C, podobnie jak w innych językach programowania, istnieje pojęcie funkcji o zmiennej liczbie argumentów, czyli funkcji, która przyjmuje nieograniczoną liczbę parametrów.

Aby użyć funkcji o zmiennej liczbie argumentów, najpierw musimy dołączyć plik nagłówkowy <stdarg.h>.

Przyjrzyjmy się przykładowi, aby zobaczyć, jak to działa:

#include <stdio.h>
#include <stdarg.h>
int sum(int num, ...) {
   va_list list;        
   va_start(list, num);
   int sum = 0;
   for (int i = 0; i < num; i++) {
       sum += va_arg(list, int); 
   }
   va_end(list); 
   printf("%d", sum);
}
int main() {
    sum(2, 20, 30);          
   return 0;
}

W tym przykładzie funkcja sum oblicza sumę zmiennej liczby wartości całkowitych.

  1. Zadeklaruj zmienną przechowującą listę argumentów za pomocą makra <strong>va_list</strong>:

    va_list list;
  2. Zainicjuj listę argumentów:

    va_start(list, num);
  3. Zadeklaruj zmienną przechowującą sumę:

    int sum = 0;
  4. Przejdź przez wszystkie elementy, pobierz każdy argument i dodaj go do sumy:

    for (int i = 0; i < num; i++) {
           sum += va_arg(list, int); 
       }
  5. Po zakończeniu obliczeń zwolnij listę argumentów:

     va_end(list); 
  6. W funkcji <strong>main</strong> wywołaj funkcję <strong>sum</strong> w następujący sposób:

      sum(2, 20, 30);  

     

 

challenge icon

Wyzwanie

Łatwy

Używając funkcji wariadycznej, utwórz funkcję o nazwie average, która oblicza i wypisuje średnią ocen uczniów.

Spróbuj swoich sił

#include <stdio.h>
#include <stdarg.h>

// Funkcja obliczająca średnią 


int main() {
    
    // Wywołaj funkcję o zmiennej liczbie argumentów | Nie zmieniaj tego
    average(4, 85, 90, 78, 92);

    return 0;
}

Wszystkie lekcje w sekcji Funkcje w C

Poćwicz samodzielnie: Kompilator C online