Ввести целое число N, вывести ближейшую к N степень числа 2 - C (СИ)

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

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

Ввести целое число N, вывести ближейшую к N степень числа 2. Здравствуйте, можно переделать код СИ ++ на СИ, и указать на ошибки, если они имеются ( а они имеются, т.к. у меня она работает через раз -_-)
#include <iostream>
#include <math.h>
 
using namespace std;
 
int main()
{
    int n,j,a,b,x,y;
    cout<<"Enter N: ";
    cin>>n;
    a=0;
    b=0;
        for(j=1;j<9999;j++)
        {
            if(pow(2,j-1)<=n && pow(2,j)>=n)
            {
                a=j-1;
                b=j;
            }
            if(b!=0)
                break;
        }
    x=abs(pow(2,a)-n);
    y=pow(2,b)-n;
    if(x<y)
        cout<<"2 in"<<a<<endl;
    else
        cout<<"2 in"<<b<<endl;
        system("pause");
        getch();
    return 0;
}

Решение задачи: «Ввести целое число N, вывести ближейшую к N степень числа 2»

textual
Листинг программы
/*Ввести целое число N, вывести ближайшую к N степень числа 2.
*/
#include <stdio.h>
#include <math.h>
 
int main() {
    int min, max, num;
 
    printf("N = ");
    scanf("%d", &num);
    fflush(stdin);
 
    min = floor(log(1.*num) / log(2.));
    max = ceil(log(1.*num) / log(2.));
 
    printf("Nearest power: %d", num - pow(2.,min) > pow(2.,max) - num ? max : min);
 
    getchar();
    return 0;
}

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

  1. Включаем необходимые заголовочные файлы для работы сprintf, scanf и математическими функциями
  2. Объявляем переменные min, max и num типа int
  3. Выводим запрос на ввод числа N с помощью функции printf
  4. Считываем число N с помощью функции scanf и сохраняем его в переменную num
  5. Используем функцию fflush для очистки буфера ввода
  6. Вычисляем ближайшую степень числа 2 к N с помощью функций log и pow
  7. Присваиваем значения переменным min и max
  8. Выводим ближайшую степень числа 2 к N на экран с помощью функции printf
  9. Ждем нажатия любой клавиши с помощью функции getchar
  10. Завершаем программу с кодом 0

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


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

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

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