找到匹配时增加数组的内容

时间:2010-12-16 11:38:27

标签: c

main()
{

   int  i,j,mul_count[16]={0},mul;

   int *ptr;

   ptr =&mul_count;

   for(i=1;i<=4;i++)    
   {
         for(j=1;j<=4;j++)

         mul = j*i;

         ptr = (ptr+(mul*4));

         mul_count[mul] = ++*ptr;
   }

   for(i=1;i<=16;i++)    
      printf("mul_count[%d]=%d\n",i,mul_count[i]);

}

任何人都可以更正此代码。代码是我为1到4的所有可能组合生成多个,并递增该特定值的数组内容,即当我做2 * 2 = 4和4 * 1 = 4时,则应设置mul_count [4] 2等等,当我再次遇到4倍数时,它应该增加到3,依此类推。这必须对所有生成的倍数进行,相应的数组值应该递增

2 个答案:

答案 0 :(得分:2)

我认为您对ptr变量的使用没有任何意义。

此外,您的代码错过了内循环所需的括号{}。你可以用这样的东西轻松逃脱:

for(i=1;i<=4;i++)
{
    for(j=1;j<=4;j++) {
        mul = j*i;
        mul_count[mul]++;
    }
}

答案 1 :(得分:2)

  1. 您已经忘记了第二次循环的大括号。
  2. ptr总是递增,所以你要离开你的阵列。无论如何,这个指针真的不需要。
  3. 试试这个:

    for(j=1; j<=4; ++j)
    {
        mul = j*i - 1;
        mul_count[mul]++;
    }