|
发表于 2022-12-4 20:56:14
From FishC Mobile
|
显示全部楼层
|阅读模式
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
int a[12]={1,2,3,4,4,3,2,1,1,1,2,3},b[5]={0},i,k;
for(i=0;i<12;i++)
{
k=a[i];
b[k]++;
}
for(i=1;i<5;i++)
printf("%2d",b[i]);
求问这个程序是怎么运行的
这个是在统计数字的个数,b_i 就是 i 这个数字在 a 中出现的次数,其实上完全不需要变量 k,k 完全是多余的: int a[12]={1,2,3,4,4,3,2,1,1,1,2,3},b[5]={0},i,k;
for(i=0;i<12;i++)
{
b[a[i]]++;
}
for(i=1;i<5;i++)
printf("%2d",b[i]);
这个讲起来有点复杂,我们可在纸上模拟模拟: i = 0, a[i] = 1, b[1]++,现在b数组(从 0~4的下标):0 1 0 0 0
i = 1, a[i] = 2, b[2]++,现在b数组:0 1 1 0 0
i = 2, a[i] = 3, b[3]++,现在b数组:0 1 1 1 0
i = 3, a[i] = 4, b[4]++,现在b数组:0 1 1 1 1
i = 4, a[i] = 4, b[4]++,现在b数组:0 1 1 1 2
...
i = 9, a[i] = 1, b[1]++,现在b数组:0 4 2 2 2
i = 10, a[i] = 2, b[2]++,现在b数组:0 4 3 2 2
i = 11, a[i] = 3, b[3]++,现在b数组:0 4 3 3 2
这个方法就很神奇,你可以自己在模拟一下
|
|