Найти число, если известен результат вычислений с ним - C (СИ)
Формулировка задачи:
Кароче есть вот такая задача:
С оператором While она решалась так:
а мне нужно теперь переделать её под Do While. Я пробовал так:
тоесть заключил тело между do и while. Но в этом варианте К всегда = 2, помогите найти ошибку ^^
дано число N (тоесть его нужно ввести с клавиатуры), число N должно быть больше 0. Это N-степень числа 2 (двойки). Также известно, что N=2 в степени К (N=pow(2,K). Найти К.
#include <stdio.h> #include <conio.h> #include <math.h>` void main() { int K=1,N; printf("Enter N\n"); scanf("%d",&N); if(N>0) while(pow(2,K)<N) {K++; if(pow(2,K)==N) { printf("K=%d\n",K); break; } } getch(); }
#include <stdio.h> #include <conio.h> #include <math.h> void main() { int K=1,N; printf("Enter N\n"); scanf("%d",&N); if(N>0) do {K++; if(pow(2,K)==N); printf("K=%d\n",K); break;} while(pow(2,K)<N); getch(); }
Решение задачи: «Найти число, если известен результат вычислений с ним»
textual
Листинг программы
#include "stdafx.h" #include <stdio.h> #include "conio.h" #include <math.h> void main() { float N; int K(-1); printf("Enter N\n->"); scanf("%f",&N); do{ K++; } while(pow(2.0, double(K))!=N) printf("K=%d\n",K); getch(); }
Объяснение кода листинга программы
- Подключение необходимых библиотек:
stdafx.h
,stdio.h
,conio.h
,math.h
. - Объявление переменных:
- N (типа float), в которую будет сохранено искомое число;
- K (типа int), которая будет использоваться для вычисления степени числа 2.
- Вывод сообщения с просьбой ввести число N.
- Считывание числа N с помощью функции scanf в переменную N.
- Введение цикла do-while, который будет выполняться до тех пор, пока возведение числа 2 в степень K (сначала приведенное к типу double) не будет равно числу N.
- Внутри цикла увеличение значения переменной K на 1.
- После выхода из цикла вывод значения переменной K.
- Вызов функции getch для приостановки выполнения программы до тех пор, пока пользователь не нажмет какую-либо клавишу.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д