проблема с указателями в одномерном массиве

В одномерном массиве, используя указатели, необходимо все положительные элементы делящиеся на 4 заменить на 0.1 При выводе выдает значения 0.000, не совсем понимаю почему. Только начал изучать си, буду рад объяснению. Возможно проблема с делением. Спасибо заранее.

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

    void intr(int* p, int n)
    {
        int i;
        for (i = 0; i < n; i++) { printf("%i=", i); scanf("%d", &(*(p + i))); }
    }
    void vivod(int* p, int n)
    {
        int i;
        for (i = 0; i < n; i++) printf("%5i", *(p + i));
    }

    void cond1(int* pa, int* pn)
    {
        int i, n;
        n = *pn;
        for (int i = 0; i < *pn; i++)
            if ((*(pa + i)) > 0)
            {
                if (fmod((*(pa + i)), 4) == 0)
                {
                    *(pa + i) = 0.1;
                }
            }
        printf("\nResult: ");
        for (int i = 0; i < *pn; i++)
        {
            printf("%.3f ", *(pa + i));
        }
    }


    int main()
    {
        int n, m, i;
        int a[10];
        int* pa = a;
        intr(a, n); 
        puts(""); 
        vivod(a, n);
            cond1(pa, &n);
    }

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