Вы добавляете к pro
, но это не инициализировано, вы не передаете значения обратно, кроме pro
. Вы сохраняете значения в адресах передаваемых переменных. В этом случае вам нужно разыменовать указатели для доступа / получения значения, *i
, и в вашем методе использовать передаваемые адреса напрямую - тогда вам не нужно брать их адрес еще раз.
Это работает - я заменил double
на float
...:
#include <stdio.h>
#include <stdlib.h>
void input(int *day, int *month, float *k, float *pro);
int main(void){
int i,j;
float k, pro;
i = j = k = pro = 0;
input(&i, &j, &k, &pro);
printf("%f\n", pro);
printf("%d : %d : %f\n", i,j,k);
return 0;
}
void input(int *i, int *j, float *k, float *pro){
scanf("%d", i);
scanf("%d", j);
scanf("%f", k);
printf("%d - %d - %f\n", *i,*j,*k);
*pro += (*i * *j * *k);
}
Выход:
1
2
3.5
1 - 2 - 3.500000
7.000000
1 : 2 : 3.500000