数组
int a={1,2,3,4,4,3,2,1,1,1,2,3},b={0},i,k;for(i=0;i<12;i++)
{
k=a;
b++;
}
for(i=1;i<5;i++)
printf("%2d",b);
求问这个程序是怎么运行的 这个是在统计数字的个数,b_i 就是 i 这个数字在 a 中出现的次数,其实上完全不需要变量 k,k 完全是多余的:
int a={1,2,3,4,4,3,2,1,1,1,2,3},b={0},i,k;
for(i=0;i<12;i++)
{
b]++;
}
for(i=1;i<5;i++)
printf("%2d",b);
这个讲起来有点复杂,我们可在纸上模拟模拟:
i = 0, a = 1, b++,现在b数组(从 0~4的下标):0 1 0 0 0
i = 1, a = 2, b++,现在b数组:0 1 1 0 0
i = 2, a = 3, b++,现在b数组:0 1 1 1 0
i = 3, a = 4, b++,现在b数组:0 1 1 1 1
i = 4, a = 4, b++,现在b数组:0 1 1 1 2
...
i = 9, a = 1, b++,现在b数组:0 4 2 2 2
i = 10, a = 2, b++,现在b数组:0 4 3 2 2
i = 11, a = 3, b++,现在b数组:0 4 3 3 2
这个方法就很神奇,你可以自己在模拟一下
页:
[1]