1203081549 发表于 2022-12-4 20:56:14

数组

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);
求问这个程序是怎么运行的

zhangjinxuan 发表于 2022-12-5 08:04:51

这个是在统计数字的个数,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]
查看完整版本: 数组