用冒泡算法排序时出错

我定义了三个浮点数,并进行排序,但得不到结果

#include <stdio.h>
void main()
{
    int i,j,temp;
    float a,b,c; 
    float num[3]={a,b,c,};
    scanf("%f %f %f",&a,&b,&c);
    for(i = 0;i < 3;i++)
    {
        for(j = 0;j<3;j++)
        {
            if(num[j]>num[j+1])
            {
                temp = num[j];
                num[j] = num[j+1];
                num[j+1] = temp;
            }
        }
    }
    printf("%.2f %.2f %,2f\n",num[0],num[1],num[2]);
}

错误一:用abc初始化num数组时abc需要先初始化。
错误二:printf三个%.2f最后一个写成了%,2f
错误三:冒泡排序不是这样写的
c++的3个浮点数的冒泡排序如下:

#include <iostream>
#include <iomanip>
using namespace std;
 
 
void BubbleSort(double a[], int len)
{
    int i, j;
    double temp;
    for (j = 0; j < len - 1; j++) //对于len个数的数组只需要len-1趟遍历交换
    {
        for (i = 0; i < len - 1 - j; i++){
              if (a[i] > a[i + 1])
              {
                  temp = a[i];
                  a[i] = a[i + 1];
                  a[i + 1] = temp;
              }
        }
    }
}
 
int main()
{
    double data[3]; //定义双精度数组
    for (int i=0;i<3;++i){
        cin>>data[i];//输入数据
    }
    BubbleSort(data,3);
    for(int i=0;i<3;++i){
        cout << setiosflags(ios::fixed);
        cout << setprecision(2);
        cout << data[i] << " ";
    }
    cout<<endl;
    return 0;
}