Как необходимо переделать код
В задании необходимо: Определить количество чисел последовательности, делителем которых является её первый член. Окончание ввода – отрицательное число. Использовать массив нельзя.
Код программы:
#include <stdio.h> //библиотеки
#include <locale.h>
#include <math.h>
int main()
{
setlocale(LC_ALL,"rus"); //переменныe
int a;
int count = 0;
int i;
printf("Программа подсчитывает количество чисел последовательности,делителем которых является её первый член.Окончание ввода - отрицательное число\n\n\n");
while(1) //цикл while()
{
printf("Введите элемент ряда: ");
scanf("%d",&a);
if(a % a == 0)
{
count++;
}
if(a < 0) //выход из цикла
{
break;
}
i++;
}
printf("Количество чисел последовательности,делителем которых является её первый член = %d",count);
return 0;
}
Как можно это реализовать,мой способ считает абсолютно все вводимые числа. Заранее спасибо за помощь.
Ответы (1 шт):
Автор решения: Vladimir Afanasyev
→ Ссылка
#include <iostream>
#pragma warning(disable:4996)
using namespace std;
int main()
{
setlocale(LC_ALL, "rus");
int a;
int count = 0;
bool firstElement = false;
int divider;
int i;
printf("Программа подсчитывает количество чисел последовательности,делителем которых является её первый член. Окончание ввода - отрицательное число\n\n\n");
while (1)
{
printf("Введите элемент ряда: ");
scanf("%d", &a);
if (!firstElement)
{
divider = a;
firstElement = true;
}
else
if (a % divider == 0 && a > 0)
{
count++;
} else if (a < 0)
{
break;
}
}
printf("Количество чисел последовательности,делителем которых является её первый член = %d", count);
return 0;
}