Перевод в десятичную систему - C (СИ)
Формулировка задачи:
То, что я начинающий в проге объяснять не стоит, видно по умолчанию. Посмотрите, пожалуйста, код перевода из двоичную в десятичную. Дело в том, что если число состоит только из 1, прога работает, а вот если из 1 и 0, то ничего не работает.
на
всё будет работать, но не понимаю почему так получается, хелп ми
Листинг программы
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <math.h>
- #define NAME 81
- int main (void)
- {
- int i, total=0, res=0, n_num=0;
- char num[NAME];
- gets(num);
- n_num=strlen(num)-1;
- for(i=n_num;i>=0;i--)
- {
- if(num[i]=='1')
- {
- res=pow(2,i);
- total+=res;
- }
- }
- printf("%d", total);
- return 0;
- }
просмотрел форум по данной теме, понял, что если заменить:
Листинг программы
- if(num[i]=='1')
- {
- res=pow(2,i);
- total+=res;
- }
Листинг программы
- if(num[i]=='1')
- total+=res;
- res*=2;
Решение задачи: «Перевод в десятичную систему»
textual
Листинг программы
- #include <stdio.h>
- #define LIM 100000
- int main()
- {
- int n, i, k, a[LIM];
- scanf("%d", &n);
- k = 0;
- while (n > 0) {
- a[k] = n % 2;
- n /= 2;
- k++;
- }
- if (k == 0)
- putchar('0');
- else
- for (i = k - 1; i >= 0; i--)
- printf("%d", a[i]);
- putchar('\n');
- return 0;
- }
Объяснение кода листинга программы
В этом коде:
- Объявляются переменные:
n
- для хранения числа, вводимого пользователем;i
иk
- для использования в качестве счётчиков;a
- массив для хранения остатков от деления числа на 2.
- С помощью функции
scanf
в переменнуюn
считывается число, вводимое пользователем. - Переменная
k
инициализируется нулём. Она используется как счётчик для хранения остатков от деления числа на 2 в массивеa
. - В цикле
while
происходит последовательное деление числа на 2 и запись остатка в соответствующий элемент массиваa
. - Если после цикла
while
значение переменнойk
равно нулю, то выводится ноль. - Если после цикла
while
значение переменнойk
не равно нулю, то в обратном порядке выводятся элементы массиваa
, соответствующие от наибольшего к наименьшему. - Выводится символ новой строки.
- Программа возвращает ноль, что означает успешный конец работы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д