Преобразуйте числа в буквы и умножьте число на само по себе

#c

Вопрос:

Пример ввода #2

 8
5
12
12
15
23
15
18
12
4
 

Пример вывода #2

 helloworld

8:8-16-24-32-40-48-56-64

5:5-10-15-20-25

12:12-24-36-48-60-72-84-96-108-120-132-144

12:12-24-36-48-60-72-84-96-108-120-132-144

15:15-30-45-60-75-90-105-120-135-150-165-180-195-210-225

23:23-46-69-92-115-138-161-184-207-230-253-276-299-322-345-368-391-414-437-460-483-506-529

15:15-30-45-60-75-90-105-120-135-150-165-180-195-210-225

18:18-36-54-72-90-108-126-144-162-180-198-216-234-252-270-288-306-324

12:12-24-36-48-60-72-84-96-108-120-132-144

4:4-8-12-16
 
 #include <iostream>
#include <iomanip>

using namespace std;

char secretCode(char number)
{
    if(number >= 1 amp;amp; number <= 26)
    {
        return static_cast<char>('a' - 1   number);
    }
    else if (number >= 27 amp;amp; number <= 52)
    {
        return static_cast<char>('a' - 27   number);
    }
    else if (number >= 53 amp;amp; number <= 104)
    {
        return static_cast<char>('a' - 53   number);
    }
}

void printSequence(int number[10])
{
    for (int i = 0; i < 10; i  )
    {
        cout << secretCode(number[i]);
    }
}

int main()
{
    int number[10];
    for (int x = 0; x < 10;   x)
    {
        cin >> number[x];
        printSequence(number);
        for (int y = number[x]; y <= number[x];   y)
        {
            for (int z = 1; z <= number[x];   z)
            {
                if (z > 1)
                {
                    cout << "-";
                }

                if (z < 1)
                {
                    cout << number[x] * -1;
                }
                else
                    cout << number[x] * z ;
            }   
        }
    }
}

 

Я думаю, что получил ответ, но я делаю что-то не так в своем коде, я все еще довольно новичок в программировании и до сих пор все шло хорошо, пока я не столкнулся с циклом и функциями..

Комментарии:

1. почему вы думаете, что в вашем коде что-то не так?

2. Я думаю, что мне нужно поместить цикл, который у меня есть на моем Int main (), в другое место, но я не смог придумать, как это сделать.

3. 'a'-'z' не гарантируется непрерывность (и это не для EBCDIC).

4. Затем 10 чисел будут декодированы в соответствии с эквивалентом символов в английском алфавите. Пример: 1 = a 2 = b 26 = z. Однако это не означает, что программа будет оценивать только от 1 до 26. Пример: 26 = z 52 = z 104 = z. Вот почему я сделал свой секретный код char() таким

5. разделение ввода и вывода: Завершите цикл после cin >> number[x]; , затем подумайте, когда вам нужен цикл, а когда нет.

Ответ №1:

 #include<iostream>
#include<iomanip>
#include <iterator>
using namespace std;
char secretCode(char number)
{
    if(number >= 1 amp;amp; number <= 26)
    {
        return static_cast<char>('a' - 1   number);
    }
        else if (number >= 27 amp;amp; number <= 52)
    {
        return static_cast<char>('a' - 27   number);
    }
        else if (number >= 53 amp;amp; number <= 104)
    {
        return static_cast<char>('a' - 53   number);
    }
}

void printSequence(int number[10])
{
    for (int i=0; i<10; i  )
    {
        cout << secretCode(number[i]);
    }
    cout << endl;
    int len = 0;
    while(len < 10){
        cout << number[len] << ":";
        for(int z=1; z<=number[len];   z){
             if (z>1)
            {
                cout << "-";
            }
            if (z<1)
            {
                cout <<number[len];
            }
            else
            cout << number[len]*z ;
        }
        cout << endl;
        len  = 1;
    }
}
int main()
{
    int number[10];
    for(int x=0; x<10;   x)
    {
        cin >> number[x];
    }
    printSequence(number);
}