Не работает определитель четности числа - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Не судите строго, новичок Вообщем нужно решить задачу: Даны натуральные числа n, а1,...аn. Определить количество членов ak последовательности а1,...аn, являющихся квадратами четных чисел. Всё бы ничего, но я не могу даже определить четность числа. Вот написал Код (простенький проверочный - это к задаче особо не относится), но он тоже не работает:
#include<stdio.h>
#include<math.h>

int main()
{
        int  i, k, n,;
        printf("n=");
        scanf("%f",&n);
 
        k=0;
        for(i=0; i<=n; i++)
                {if((i%2)==0)
                k++;
                }
        printf("k=%f",k);
        return 0;
}
Что делаю не так?

Решение задачи: «Не работает определитель четности числа»

textual
Листинг программы
int main()
{
        int n, p, k, i;
        printf("n=");
        scanf("%d",&n);
 
        i=0;
        for(p=1; p<=n; p++)
        {
        if((p%2)==0)
                for(k=p*p; k<=n;)
                {
                i++;
                break;
                }
        }
        printf("i=%d\n",i);
 
        return 0;
}

Объяснение кода листинга программы

В этом коде выполняется следующая последовательность действий:

  1. Объявляются переменные n, p, k, i типа int.
  2. С помощью функции printf выводится сообщение n=, а затем с помощью функции scanf в переменную n считывается целое число, которое вводится с клавиатуры.
  3. Инициализируется переменная i со значением 0.
  4. Запускается цикл for, который выполняется от 1 до n.
  5. Внутри цикла проверяется, является ли текущее значение p четным числом с помощью оператора % (остаток от деления на 2).
  6. Если число четное, то выполняется вложенный цикл for, который начинается с k=p*p и продолжается до тех пор, пока значение k не превысит n.
  7. Внутри вложенного цикла увеличивается значение переменной i на 1, а затем цикл прерывается с помощью оператора break.
  8. После завершения внешнего цикла выводится значение переменной i с помощью функции printf.
  9. Код завершается и возвращает 0. В результате выполнения данного кода будет выведено на экран число 1, так как цикл прерывается после первой итерации. Если ввести нечетное число, то на экран будет выведено число 0, так как цикл не будет выполнен ни разу.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.455 из 5
Похожие ответы