при использовании scanf внутри функции, которую я определил, для изменения значений в массиве, который я передал по ссылке на эту функцию, он вообще не меняет значение, будучи двойным типом.
Когда я меняю местозаполнитель с: scanf ("% 1f", & x) на scanf ("% d", & x), он работает как положено, но мне нужно использовать double для этого проекта.
int main()
{
double varArray[MAX];
zeroFill(varArray);
}
void fill(double *array) {
for(int i =0; i<MAX; i++){
printf("what is index %d?\n", i);
scanf("%f",(array+i));
printf("%f \n", *(array+i));
}
вместо изменения значения по этому индексу она изменяет его 0,000000 или номер jiberish:
what is index 0?
1
0.000000
what is index 1?
2
0.000000
what is index 2?
3
-0.000000
what is index 3?
4
0.000000
what is index 4?
5
0.000000
what is index 5?
6
0.000000
what is index 6?
7
182043948477041810000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.000000
Таким образом, для входов 3 и 7он вернул -0,000000 и большое число av.Однако это не согласуется, поэтому другие входные данные будут давать аналогичные выходные данные