求解释一下我的代码哪里错了

img


这是问题,下面是我的代码:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void main()
{
int n, i, a = 0, b = 0, c = 0, d = 0, e = 0, f = 0;
double g = 0, h = 0, m = 0, j = 0, k = 0, l = 0;
for (i = 1; i <= 1000000; i++)
{
srand((unsigned)time(NULL));
n = 1 + rand() % 6;
switch (n)
{
case1:a += 1, g = a / (b + c + d + e + f); break;
case2:b += 1, h = b / (b + c + d + e + f); break;
case3:c += 1, m = c / (b + c + d + e + f); break;
case4:d += 1, j = d / (b + c + d + e + f); break;
case5:e += 1, k = e / (b + c + d + e + f); break;
case6:f += 1, l = f / (b + c + d + e + f); break;
}
}
printf("出现1点的次数为 % d, 所占比例为%lf\n出现2点的次数为 % d, 所占比例为%lf\n出现3点的次数为 % d, 所占比例为%lf\n", a, b, c, g, h, m);
printf("出现4点的次数为 % d, 所占比例为%lf\n出现5点的次数为 % d, 所占比例为%lf\n出现6点的次数为 % d, 所占比例为%lf\n", d, e, f, j, k, l);
}

    case1:之间要有空格

统计的代码必须放在循环语句外面。

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void main()
{
    int n, i, a = 0, b = 0, c = 0, d = 0, e = 0, f = 0;
    double g = 0, h = 0, m = 0, j = 0, k = 0, l = 0;
    srand((unsigned)time(NULL));
    for (i = 1; i <= 10; i++)
    {    
        n = 1 + rand() % 6;
        switch (n)
        {
            case 1: a += 1; break;
            case 2: b += 1;  break;
            case 3: c += 1; break;
            case 4: d += 1;  break;
            case 5: e += 1; break;
            case 6: f += 1; break;
        }
    }
    g = a*1.0 / (b + c + d + e + f); 
    h = b*1.0 / (b + c + d + e + f);
    m = c*1.0 / (b + c + d + e + f); 
    j = d*1.0 / (b + c + d + e + f);
    k = e*1.0 / (b + c + d + e + f); 
    l = f*1.0 / (b + c + d + e + f); 
    printf("出现1点的次数为 % d, 所占比例为%lf\n出现2点的次数为 % d, 所占比例为%lf\n出现3点的次数为 % d, 所占比例为%lf\n", a, g, b, h, c, m);
    printf("出现4点的次数为 % d, 所占比例为%lf\n出现5点的次数为 % d, 所占比例为%lf\n出现6点的次数为 % d, 所占比例为%lf\n", d, j, e, k, f, l);
}

img