Не работает программа, которая переводит из 10-й системы счисления в b-ю

#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.

Зачем два цикла?
Можно с одним циклом, примерно так:

Код Си
#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” тут зачем? Она же, вроде в степень возводит, разве не так?

Все верно, два в степени итого…

Извиняюсь: неправильно написал название обсуждения.

Тогда все нужно сделать наиборот ))