如何在输出末尾删除逗号。但是这里我不知道最终的输出是什么,因为数组的元素是由用户输入的。因此,最后一个数组可以是奇数或偶数,并且未知。而且我被允许使用布尔,数组和决策。因为我没有学过,所以不允许使用指针或结构。
#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 [] >>以及使用我提到的两个布尔值。
答案 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 = " , ";
}
}
编辑,移动定界符(偶然将其置于循环中)。