使用数组和布尔值在输出未知时从输出中删除逗号

时间:2019-04-30 12:04:40

标签: c++

如何在输出末尾删除逗号。但是这里我不知道最终的输出是什么,因为数组的元素是由用户输入的。因此,最后一个数组可以是奇数或偶数,并且未知。而且我被允许使用布尔,数组和决策。因为我没有学过,所以不允许使用指针或结构。

#include<iostream>
using namespace std;

int main()
{
    int array[100], Number;

    cout << "\nEnter the size of an array (1-20):";

    cin >> Number;

    if (Number <= 20 && Number > 0)
    {
        cout << "Enter the elements of the array: \n";

        // For loop execution  
        // i start at 0. as long as i < Number. i++ 
        for (int i = 0; i < Number; i++)
        {
            cout << "array element " << i << ":";
            cin >> array[i];
        }

        cout << "\nEven Numbers are : ";

        // For loop execution
        for (int i = 0; i < Number; i++)
        {
            // condition and execution
            if (array[i] % 2 == 0)
            {
                cout << array[i];
                cout << " , ";
            }
        }
        cout << endl;

        cout << "odd Numbers are: ";

        // For loop execution
        for (int i = 0; i < Number; i++)
        {
            // condition and execution
            if (array[i] % 2 != 0)
            {
                cout << array[i];
                cout << " , ";
            }
        }

        cout << endl;
        cout << "-------------------------------------------------";
    }
    else
    {
        cout << "size is invalid" << endl;
    }

    system("pause");
    return 0;
}

我看了一些其他程序,无法弄清楚。我是一个初学者,所以您可以帮我解决这个问题。我被要求使用两个boleean变量,分别是<<奇数>>和<>,并要求使用两个数组来解决这个问题。一个<>和一个<< Odd Arr [] >>以及使用我提到的两个布尔值。

2 个答案:

答案 0 :(得分:2)

只需在元素前打印逗号并检查第一个元素:

    bool is_first = true;
    for (int i = 0; i < Number; i++)
    {
        // condition and execution
        if (array[i] % 2 == 0)
        {
            if(!is_first)
            {
                cout << " , ";
            }
            cout << array[i];
            is_first = false;
        } 
    }

答案 1 :(得分:0)

删除尾部逗号的最好方法是不打印它。

重做您的数组,打印成类似这样的内容:

std::string dlm;
for (int i = 0; i < Number; i++)
{
    // condition and execution
    if (array[i] % 2 == 0)
    {
        cout << dlm << array[i];
        dlm = " , ";
    }
}

编辑,移动定界符(偶然将其置于循环中)。