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

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

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

Ввести целое число N, вывести ближейшую к N степень числа 2. Здравствуйте, можно переделать код СИ ++ на СИ, и указать на ошибки, если они имеются ( а они имеются, т.к. у меня она работает через раз -_-)
Листинг программы
  1. #include <iostream>
  2. #include <math.h>
  3. using namespace std;
  4. int main()
  5. {
  6. int n,j,a,b,x,y;
  7. cout<<"Enter N: ";
  8. cin>>n;
  9. a=0;
  10. b=0;
  11. for(j=1;j<9999;j++)
  12. {
  13. if(pow(2,j-1)<=n && pow(2,j)>=n)
  14. {
  15. a=j-1;
  16. b=j;
  17. }
  18. if(b!=0)
  19. break;
  20. }
  21. x=abs(pow(2,a)-n);
  22. y=pow(2,b)-n;
  23. if(x<y)
  24. cout<<"2 in"<<a<<endl;
  25. else
  26. cout<<"2 in"<<b<<endl;
  27. system("pause");
  28. getch();
  29. return 0;
  30. }

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

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

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

  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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы