проблема с указателями в одномерном массиве
В одномерном массиве, используя указатели, необходимо все положительные элементы делящиеся на 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);
}