#include <locale.h>
#include <stdio.h>
#include <string.h>
int main()
{
setlocale(LC_ALL, "Rus");
int osnovanie, vvodimoe, kollichestvo = 0;
int iskomoe[50];
scanf_s("%d", &vvodimoe);
scanf_s("%d", &osnovanie);
while (vvodimoe != 0)
{
for (int i = 0; i <= 49; i++)
{
iskomoe[i] = vvodimoe % osnovanie;
vvodimoe /= osnovanie;
kollichestvo++;
break;
}
}
printf("Число в заданной системе счисления: ");
for (int i = kollichestvo - 1; i >= 0; i--)
{
printf("%d", iskomoe[i]);
}
return 0;
}
не корректно выводит цифры.
Корректно выводит только внутри первого цикла for.
LiAN
16.Май.2021 13:12:36
#2
Зачем два цикла?
Можно с одним циклом, примерно так:
Код Си
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
int n = 8, sum = 0;
char ch[n];
scanf ("%s", ch);
for (int i = n-1; i > -1; i--)
{
if (ch[i] == '1')
sum += pow(2, i) ;
}
printf ("%d", sum);
}
Может я чего-то не понимаю, но функция “pow” тут зачем? Она же, вроде в степень возводит, разве не так?
LiAN
16.Май.2021 15:05:27
#4
Все верно, два в степени итого…
Извиняюсь: неправильно написал название обсуждения.
LiAN
16.Май.2021 15:50:36
#6
Тогда все нужно сделать наиборот ))