Тема: Неправильний результат під час виконання програми
Привіт. Почався в мене в бурсі такий предмет як програмування,
ну і дали нам на дз написати програмку на c, яка обчислює середнє арифметичне 3 чисел з плаваючою комою.
Власне я с до того не вчив, але розібратися з основними операторами не склало великої мороки.
Та так сталося, що в мене при певній ситуації, виникає помилка.
Ось повний код робочої програми:
#include<stdio.h>
 double average(double number1, double number2, double number3)
 {
    return (number1 + number2 + number3) / 3;
 }
 int main(void)
 {
    float n1,n2,n3;
  printf("Введіть 3 числа \n");    
  scanf("%f %f %f",&n1,&n2,&n3); 
  printf("Середнє арифметичне: %5.2f",average(n1,n2,n3));
  return 0;
 }А проблема заключається у тому, що якщо 
float n1,n2,n3;Замінити на 
double n1,n2,n3;То компілятор каже таке:
program.c:12:3: warning: format ‘%f’ expects argument of type ‘float *’, but argument 2 has type ‘double *’ [-Wformat]
program.c:12:3: warning: format ‘%f’ expects argument of type ‘float *’, but argument 3 has type ‘double *’ [-Wformat]
program.c:12:3: warning: format ‘%f’ expects argument of type ‘float *’, but argument 4 has type ‘double *’ [-Wformat]Тото матюкається на цю
scanf("%f %f %f",&n1,&n2,&n3);строку.
Але при цьому всьому програма компілюється, але якщо наприклад задати 3 числа( 3,3,3) 
то результатом буде:
902945129852059871903106368162024652800.00Чим викликано такий результат ? У чому причина ?
