一半输出一半

时间:2019-01-27 15:57:36

标签: c++ arrays string

我没有得到第二行输出 必须是“ nk” 基本上我想给一半的输出,甚至 就像在mayank中一样,它会变成一半l / 2 输入mayank和nikhil时,我应该得到偶数索引“ my”和“ ny”

#include <iostream>
#include <cstring>
using namespace std;
int main()
{
    int n, l, temp, j, i;
    cin >> n;
    i = 0;
    j = 0;
    char a[n][100];
    while (i < n) {
        cin >> a[i];
        i++;
    }
    i = 0;
    while (i < n) {
        l = strlen(a[i]);
        while (j < l / 2) {
            if (j % 2 == 0) {
                cout << a[i][j];
            }
            j = j + 2;
        }
        i++;
    }
}

1 个答案:

答案 0 :(得分:0)

我仍然不确定您到底想做什么。但是这是您的代码,可以打印偶数索引的字符,仅打印到每个字符串的前半部分。 请注意,为了拥有动态数组,您需要使用malloc()(C样式)或new(C ++样式)。

在此示例中,我使用了malloc使其尽可能接近您的原始代码,请注意,此代码中唯一的“ C ++”是cout

#include <iostream>
#include <cstring>
#include <cstdlib>
using namespace std;
int main()
{
    int n, l, temp, j, i;
    cin >> n;
    i = 0;
    j = 0;
    char **a = (char**)malloc(n*sizeof(char*));
    for (i=0; i<n; i++)
    {
        a[i]=(char*)malloc(100*sizeof(char));
    }
    i=0;
    while (i < n) {
    cin >> a[i];
    i++;
    }
    for(i=0;i<n;i++)
    {
        for(j=0;j<strlen(a[i])/2;j++)
        {
            if(j%2==0)
            {
                cout << a[i][j];
            }
        }
        cout << '\n';
    }
}