/*
* uzivatelske funkce
*/
#include <stdio.h>
#include <math.h>
double a,b;
double Aprum(double fp1, double fp2); // uplny funkcni prototyp
double Gprum(double fp1, double fp2); // dava prekladaci informaci
double Hprum(double fp1, double fp2); // o navratove hodnote funkce,
void Prohod(double *fp1, double *fp2); // o poctu a typu parametru
void Cara(char fp) {
int i;
static int delka = 25; // delka je staticka lokalni promenna
for (i=1;i<=delka;i++) putchar(fp); // je umistena v DATOVE oblasti pameti
putchar('\n');
delka += 2;
}
int main(void) {
Cara('=');
Cara('-'); Cara('-');
printf("zadej realne cislo a : "); scanf("%lf", &a);
printf("zadej realne cislo b : "); scanf("%lf", &b);
printf(" a = %9.6lf\n b = %9.6lf \n", a,b);
printf("prohozeni promennych ...\n");
Prohod(&a,&b);
printf(" a = %9.6lf\n b = %9.6lf \n", a,b);
printf("aritmeticky prumer = %9.6lf\n", Aprum(a,b) );
printf("geometricky prumer = %9.6lf\n", Gprum(a,b) );
printf("harmonicky prumer = %9.6lf\n", Hprum(a,b) );
Cara('-'); Cara('-');
Cara('+');
return 0;
}
double Aprum(double fp1, double fp2) {
return ((fp1+fp2)/2);
}
double Gprum(double fp1, double fp2) {
return (sqrt(fp1*fp2));
}
double Hprum(double fp1, double fp2) {
return (1/(1/fp1+1/fp2));
}
void Prohod(double *fp1, double *fp2) {
double pom;
pom=*fp1; *fp1=*fp2; *fp2=pom;
}