Рассмотрим систему кодирования для алфавитов с целыми числами, где 'a' представляется как 1, 'b' как 2, .. 'z' как 26. Учитывая массив цифр (1 до 9), введите функцию, которая печатает все допустимые интерпретации входного массива.Найти все возможные интерпретации массива цифр
/*Examples
Input: {1, 1}
Output: ("aa", 'k")
[2 interpretations: aa(1, 1), k(11)]
Input: {1, 2, 1}
Output: ("aba", "au", "la")
[3 interpretations: aba(1,2,1), au(1,21), la(12,1)]
Input: {9, 1, 8}
Output: {"iah", "ir"}
[2 interpretations: iah(9,1,8), ir(9,18)]*/
Мой код с этой
#include<iostream>
using namespace std;
#include<string.h>
int a[10]={2,3,4,4,2,4,2,8,9};
char c[]={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
void func(int i,char result[10])
{
if(i==10)
{
int l=strlen(result);
for(int j=0;j<l;j++)
cout<<result[j];
}
else
{
if(10*a[i]+a[i+1]<26)
{
strcat(result,"c[10*a[i]+a[i+1]]");
func(i+2,result);
}
strcat(result,"c[a[i]]");
func(i+1,result);
}
}
int main()
{
func(0,"");
}
Я не в состоянии выяснить ошибки. Можете ли вы мне помочь??
Какие ошибки вы видите? –
«using namespace std» вряд ли «ваш C-код». Я предполагаю, что вы имели ввиду C++? –
Кроме того, вы пытаетесь strcat на строковый литерал, который является недостаточно коротким и доступен только для чтения. –