Указатели Си,среднее арифметическое

Почему не работает?Задача состоит в нахождении среднего арифметического с помощью указателей. Выдаёт Segmentation fault (core dumped)

  #include <stdio.h>
    #include <stdlib.h>
    float main() {
    float* a ;
    float* b ;
    float* c ;
    float* res;
    scanf("%float", a);
    scanf("%float", b);
    scanf("%float", c);
    *res = (float)(*a + *b + *c) / 3;
    printf("%f\n", *res);
    return 0;
    }

Ответы (2 шт):

Автор решения: Harry
#include <stdio.h>
#include <stdlib.h>

int main(void) {   // int, не float!!
    float a, b, c, res;
    scanf("%f", &a);  // Не %float!
    scanf("%f", &b);
    scanf("%f", &c);
    res = (a + b + c) / 3;
    printf("%f\n", res);
}

Ну, держите указатели...

#include <stdio.h>
#include <stdlib.h>

int main(void) {   // int, не float!!
    float *a = malloc(2*sizeof(float));
    *(a+1) = 0;
    for(int i = 0; i < 3; ++i)
    {
        scanf("%f", a);  // Не %float!
        *(a+1) += *a;
    }
    printf("%f\n", *(a+1)/3);
    free(a);
}
→ Ссылка
Автор решения: avp

Ну, если только указатели...

#include <stdio.h>
#include <stdlib.h>

int
main (int ac, char *av[])
{
  float a, b, c,
    *pa = &a, *pb = &b, *pc = &c;

  if (scanf("%f %f %f", pa, pb, pc) == 3)
    printf("%f\n", (*pa + *pb + *pc) / 3);
  else
    puts("input error");

  return puts("End") == EOF;
}

Конечно, память можно было бы и malloc()-м выделить, например, вот так
float *pa = malloc(sizeof(float) * 3),*pb = pa + 1, *pc = pa + 2;
но решил не усложнять пример для новичка

→ Ссылка