увеличивать содержимое массива, когда совпадение найдено - PullRequest
2 голосов
/ 16 декабря 2010
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 ]

2 голосов
/ 16 декабря 2010
  1. Вы забыли скобки для второго цикла.
  2. ptr всегда увеличивается, поэтому вы выходите из массива. В любом случае этот указатель действительно не нужен.

Попробуйте это:

for(j=1; j<=4; ++j)
{
    mul = j*i - 1;
    mul_count[mul]++;
}
2 голосов
/ 16 декабря 2010

Я не вижу смысла в использовании переменной ptr.

Также в вашем коде отсутствуют необходимые скобки { и } для внутреннего цикла.Вместо этого вы можете сделать это намного проще:

for(i=1;i<=4;i++)
{
    for(j=1;j<=4;j++) {
        mul = j*i;
        mul_count[mul]++;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...