如何解决代码中的以下错误?

时间:2016-05-02 18:56:43

标签: c++

我的代码:

#include<iostream>
#include<conio.h>
using namespace std;

int main()
{
    int a;
    while ((cin >> a))
    {
        if (a == 0)
            break;
        char inp[401];
        cin >> inp;
        for (int i = 0; i < a; i += 1)
        {
            for (int j = i; j < 400; j += a)
            {
                if (inp[j] == '\0')
                    break;

                cout << inp[j] << endl;
            }
        }
        cout << endl;

    }
    getchar();
    return 0;
}

错误是我应该打印存储在inp [j]中的字符时没有输出。请帮助解决这个问题。
输入:

5
toioynnkpheleaigshareconhtomesnlewx

预期产出:

theresnoplacelikehomeonasnowynightx

1 个答案:

答案 0 :(得分:0)

你的问题非常神秘,就像你试图解决的解密问题一样。以下代码生成给定输入的预期输出。

#include<iostream>
#include<conio.h>
using namespace std;

int main()
{
    int a;
    while ((cin>>a))
    {
        if (a == 0)
            break;
        string inp;
        cin >> inp;
        int f = 9,s=1;
        int inc = f;
        for(int i = 0; i < a; i++)
        {
            for (int j = i; j  < inp.length() ; )
            {
                cout << inp[j];
                j += inc;
                inc = inc==f?s:f;
            }
            f-=2;
            s+=2;
            inc = f;
        }
        cout << endl;
    }
    getchar();
    return 0;
}