Задача написать функцию на С++,переводящую число 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)
. И можно выполнить в вашем стиле тоже, только по логике уже вами принятого ответа.
Виртуальный выделенный сервер (VDS) становится отличным выбором
Что такое "Thunk" в контексте виртуальных функций?(Как работает?)
Я начинающий в программированииЧитая книгу о С++ в главе посвященной указателям (в частности оператору delete), я наткнулся на то, что в среде...
У меня на странице несколько ViewНужно чтобы каждый анимировался после предыдущей