Как посчитать несколько чисел во входном файле? - PullRequest
0 голосов
/ 02 мая 2010

Я пытался посчитать количество, кратное 2, 3 и 6 соответственно из входного файла пользователя. но по какой-то причине мой счетчик не работает. Может ли кто-нибудь из боссов помочь мне, пожалуйста. мой код:

#include <stdio.h>
int main (void)
{
  int num[12];
  int i;
  int counttwo;
  int countthree;
  int countsix;
  int total=0;
  printf("enter 12 integer numbers:\n");
  for(i=0;i<12;i++){

 scanf("%d", &num[i]);
  }
  for(i=0;i<12;i++){
    counttwo=0;
      if(num[i]%2==0){
       counttwo++;
      }
      countthree=0;
       if(num[i]%3==0)
  {
      countthree++;
   }
       countsix=0;
      if(num[i]%6==0)
        {
          countsix++;
}
      printf("There are %d multiples of 2:\n", counttwo);
      printf("There are %d multiples of 3:\n", countthree);
      printf("There are %d multiples of 6:\n", countsix);
}
  return 0;

}

Ответы [ 3 ]

1 голос
/ 02 мая 2010

Подумайте о том, что происходит со значениями counttwo, countthree и countsix во втором цикле.Обратите особое внимание на строки counttwo = 0, countthree = 0 и countsix = 0.

1 голос
/ 02 мая 2010

Вы сбрасываете счетчик переменных на каждом шаге итерации. Поставить

counttwo=0;
countthree=0;
countsix=0;

код до for().

0 голосов
/ 02 мая 2010
  • Сброс counttwo, countthree и countsix до 0 до for-loop
  • Удалить избыточный for-loop для scanf
  • Переместить 3 printf из for-loop

Это фиксированный код

#include <stdio.h>
int main (void)
{
  int num[12];
  int i;
  int counttwo = 0; //Reset counttwo, countthree, and countsix to 0
  int countthree = 0;
  int countsix = 0;
  int total=0;
  printf("enter 12 integer numbers:\n");

  for(i=0;i<12;i++){

      scanf("%d", &num[i]);

      if(num[i]%2==0){
       counttwo++;
      }

      if(num[i]%3==0){
       countthree++;
      }

      if(num[i]%6==0) {
        countsix++;
      }
  }

  printf("There are %d multiples of 2:\n", counttwo);
  printf("There are %d multiples of 3:\n", countthree);
  printf("There are %d multiples of 6:\n", countsix);

  return 0;

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...