配列中の実数値をsize個分先頭から順番に出力する手続き、またその配列の要素を10個入力し、その配列の要素と配列中の最大値を表示するプログラムを書きたいのですが、下記に示すプログラムではそれができませんでした。

どこが間違っているのかもよくわからないので、わかる方がいましたら、回答よろしくお願いします。

/* size個 の入力された実数データを 配列の先頭から順番に格納する */
void readDoubleArray(int a[], int size)
{
    int i;
    for(i=0;i<size;i=i+1) {
        printf("%d 番目? ", i+1);
        scanf("%lf", &a[i]);
    }
}

/* size個 の実数データが入っている配列を 配列の先頭から順に出力する */
void printDoubleArray(int a[], int size)
{
    int i;
    for(i=0;i<size;i=i+1) {
        printf("%f ", a[i]);
    }
    printf("\n");
}

//要素数size の実数をもつ配列 a の中の最大値を返す.

int maxDoubleArray(int a[], int size)
{
    int i,max;
    max=a[0];
    for(i=1;i<size;i=i+1) {
        if (a[i]>max){
            max=a[i];
        }
    }
    return max;

}

int main(void)
{
    double data[1024];

    readDoubleArray(data, 10);
    printf("順番に出力:");
    printDoubleArray(data, 10);
    printf("最大値:%f\n", maxDoubleArray(data,10));

    return 0;
}