すみません。教えてください。
下記のようなプログラムを書くと、結果に必ず0.0が混ざってしまい、困っています。
乱数を3つ表示させたいのですが、0.0を含まないようにするにはどうしたらよいのでしょうか?

#include <stdio.h>
#include <stdlib.h>
#include<time.h>
#define N 3
int main(void)
{ int i,j=0,check;
double data[N],dia[N],tmp;
srand((unsigned)time(NULL));
printf("\n乱数のつもり:\n");
for (i=1; i<=N; i++)
{data[i]=rand()%100+(double)rand()/32768.0;}
/* 並替えの計算 */
for (i = 1; i < N - 1; i++)
for (j = i + 1; j < N; j++)
if (data[j] < data[i]) /* <: 昇順, >: 降順 */
{ tmp = data[i];
data[i] = data[j];
data[j] = tmp;};
for (i = 0; i < N; i++)
printf("%.1f ", data[i]); /*並替えデータの表示*/
}