c++想生成一个随机数,保留一位小数,为啥生成的数小数点后面都是零

代码如下
#include <time.h>
#include <stdio.h>
#include <stdlib.h>

int main() {
    const int SIZE=10;
    double a[SIZE],m,n;
    int i;
    
    srand(time(NULL));
    
    for(i=0;i<SIZE;i++)
        a[i]=(rand()%1000)/10;
        
    for(i=0;i<SIZE;i++)
        printf("%.1lf ",a[i]);
    printf("\n");
    
    return 0;
}

结果如下

img

rand返回的是整数,也就是说先除以10再转换为double

int main() {
const int SIZE=10;
double a[SIZE],m,n;
int i;
srand(time(NULL));
for(i=0;i<SIZE;i++)
a[i]=(rand()%1000)/10;
for(i=0;i<SIZE;i++)
printf("%.0lf ",a[i]);//%.1lf改为%.0lf控制小数点的位数
printf("\n");
return 0;
}

rand()返回的是个整数,%1000/10后还是整数