Задача написать функцию на С++,переводящую число X из 10 системы счисления в 3.
#include "pch.h"
#include <iostream>
#include <string>
using namespace std;
int a,x,k,x1,t;
int perefod(int x)
{ cin >> x;
while (x > 0) { x /= 3; k++; }
int *a = new int[k];
for (int i = 0; i < k; i++) {
while (x > 0) { t = 0; t = x % 3; a[i] = t; x /= 3; }}
for (int i = k; i < 0; i--) { cout << a[i]; }
return 0;
delete[]a;}
int main()
{x1 = perefod(x);
return 0;}
А зачем именно массив? Раз выводить нужно - берите строку:
string perevod(int x)
{
string s;
while(x)
{
s = char('0'+x%3) + s;
x /= 3;
}
return s;
}
int main()
{
int n;
cin >> n;
cout << perevod(n) << endl;
}
После while (x > 0) { x /= 3; k++; } x==0, и вся остальная часть функции ничего не будет делать, тем более что вы перед удалением уже возвращаете ноль( не понятно что вы пытались этим выразить), так что удаление массива тоже не произойдет. Для этой функции ничего не нужно возвращать, раз вы вывод пытаетсь осуществлять прямо в функции. Ее нужно определять как void perefod(int x). И можно выполнить в вашем стиле тоже, только по логике уже вами принятого ответа.
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости