C++我不想在最后一个值后输入逗号
问题描述:
我的程序应该找到数字的因素并用逗号打印出来。除了最后一个。那里没有逗号。C++我不想在最后一个值后输入逗号
#include <iostream>
using namespace std;
int main()
{
int number;
cin >> number;
if (number < 1)
{
cout << 0;
}
else if (number == 1)
{
cout << number;
}
for (int i=2; i <= number; i++)
{
while (number % i == 0)
{
number /= i;
cout << i << ", ";
}
}
cout << endl;
return 0;
}
答
你想是这样的:
for (int i=2; i <= number; i++)
{
while (number % i == 0)
{
number /= i;
cout << i << (number != 1 ? ", " : "");
}
}
答
的简单的解决方案:
std::string sep;
for(int i = 2; i <= number; ++i)
{
while(number % i == 0)
{
std::cout << sep << i;
sep = ", ";
number = i;
}
}
无需在循环if
,但在第一次迭代sep
是一个空字符串
用布尔最简单的方法是:
bool first = true;
for(int i = 2; i <= number; ++i)
{
while(number % i == 0)
{
if(!first)
std::cout << ", ";
else
first = false;
std::cout << i;
number /= i;
}
}
随你的选择。关于第一个有一些好处,除了它每次迭代循环都会将sep重置为相同的值。你可以在它之前放置if(sep.empty())
。
让我们通过它......你怎么知道你什么时候达到最后的价值?如果只输出一个不是最后一个值的逗号,你能做些什么? – Leon 2014-09-12 11:57:17
把第一个数字以外的数字前面的逗号 – 2014-09-12 12:01:12
upvoter!哈哈哈哈。xD – dhein 2014-09-12 12:09:38