dmitry_dev33
@dmitry_dev33

Найдите, пожалуйста, ошибку в коде c++?

Программа должна переводить числа из 10 в двоичную систему счисления, но не выходит, почему-то. Может инклюд какой-то лишний есть?
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <locale>

int main()
{
	setlocale(LC_ALL, "RUSSIAN");
	int denary; //вводимое число в 10-системе
	int power; //наибольшая степень двойки
	int counter; // счётчик циклов

		printf("\n Введите число от 0 до 255     ");
		scanf_s("%d", &denary);
		if (denary > 255)
			{
				printf("\n Ошибка исходных данных\n");
				getchar();
				exit(0);
			}
			power = 128;
			printf("\n");
			for (counter = 1; counter <= 8; counter++);
			{
				if (denary >= power)
					{
						printf("1");
						denary = denary - power;
					}
				else
					{
						printf("0");
						power = power / 2;
					}
			}
			printf("\n Двоичный код числа =%4d \n", denary);
		
    return 0;
}

abb94fe926f04fcbb86ed919162887b8.jpg
  • Вопрос задан
  • 288 просмотров
Решения вопроса 1
MrNexeon
@MrNexeon
Уберите точку с запятой ; в конце строки for (counter = 1; counter <= 8; counter++);
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
GavriKos
@GavriKos
Во первых - весь код в тег "code"!
Во вторых - при ошибках в инклюдах программа не скомпилируется.
В третьих - по моему вы что то неправильно делаете совсем. Алгоритмически.
Ответ написан
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Первая ошибка - ; после for
Вторая - power надо уменьшать в каждой итерации.
Ну и общая неэффективность.
for (power = 128; power > 0; power >>= 1)
  printf((denary & power ? "1" : "0");
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы