jazykc  2013.3
upoljazykc
 All Classes Files Functions Variables Typedefs Macros Pages
Functions
prumer-cisel.c File Reference
#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
#include <assert.h>

Go to the source code of this file.

Functions

long double prumer (char *format,...)
 
int main (void)
 

Detailed Description

Funkce_s_proměnným_počtem_parametrů

Průměr čísel

Téma: Funkce s proměnným počtem parametrů Procvičované učivo: funkce s proměnným počtem parametrů, cykly, větvení

Napište v jazyku C funkci long double prumer (char* format, ...)

která výpočítá aritmetický průměr ze zadaných hodnot různých datových typů. Typy předávaných hodnot jsou určeny pomocí parametru format, který může tvořit libovolná posloupnost znaků odpovídající typům následujících parametrů

Příklad použití:

pr = prumer("idld", 1, (double)3, (long double)2, 3.0);
printf("Prumer je %Lf. \n", pr);

Příklad výstupu:

Prumer je 2.25.

Alternativy úlohy: Suma čísel

Definition in file prumer-cisel.c.

Function Documentation

long double prumer ( char *  format,
  ... 
)

vypocita aritmetický prumer ze zadanych hodnot ruznych datovych typu.

Parameters
formatretezec, i pro int, d pro double, l pro long double
...
Returns
long double (C99) aritmeticky prumer

Definition at line 44 of file prumer-cisel.c.

44  {
45  va_list args;
46  char f;
47  int i = 0;
48  double d;
49  long double ld, suma = 0.0L;
50 
51  va_start(args, format);
52  for (i=0; format[i] ; i++) {
53  switch (format[i]) {
54  case 'i': suma += va_arg(args, int); break;
55  case 'd': suma += va_arg(args, double); break;
56  case 'l': suma += va_arg(args, long double); break;
57  default://neznamy format
58  assert(("neznamy format",0));
59  }
60  }
61  va_end(args);
62  return suma / i;
63 }