C++ Don';t打印最后一个数字后的空格
语言:C++ 您好,在下面的函数(代码块)中,我写了一行来打印字符之间的空格,但是我不希望在最后一个字符之后打印空格。我怎样才能解决这个问题C++ Don';t打印最后一个数字后的空格,c++,C++,语言:C++ 您好,在下面的函数(代码块)中,我写了一行来打印字符之间的空格,但是我不希望在最后一个字符之后打印空格。我怎样才能解决这个问题 bool perfecto(int n) { int suma, i; suma = 0; for (i = 1; i < n; i++) { if (n % i == 0) { suma += i; cout << i &l
bool perfecto(int n)
{
int suma, i;
suma = 0;
for (i = 1; i < n; i++)
{
if (n % i == 0)
{
suma += i;
cout << i << " ";
}
}
if (suma == n)
return true;
else
return false;
}
boolperfecto(int n)
{
内苏马,我;
suma=0;
对于(i=1;i cout最简单的方法是扭转这个问题:如果在打印数字之前(而不是之后)只打印空格,那么就变成了如何不在第一次打印,这要容易得多
我会让你算出:)你可以检查I是否等于n-1,在这种情况下不打印它,或者类似的东西
std::cout << "1";
for (int i = 2; i < n; ++i)
{
std::cout << " " << i;
}
std::cout替换此行:coutbool perfecto(int n)
{
内苏马,我;
suma=0;
bool first=true;
对于(i=1;i cout有多种选择。在这种情况下,最简单的方法可能是在除第一个元素之外的元素之前打印空格,并使用标志跟踪第一个元素:
bool perfecto(int n)
{
int suma, i;
suma = 0;
bool first = true;
for (i = 1; i < n; i++)
{
if (n % i == 0)
{
suma += i;
if(!first)
{
std::cout << " ";
}
else first = false;
cout << i;
}
}
if (suma == n)
return true;
else
return false;
}
boolperfecto(int n)
{
内苏马,我;
suma=0;
bool first=true;
对于(i=1;i std::难道他没有打印所有的数字,只打印因子。反例:n=6,输出是1 2 3
。您的代码没有消除尾随空格。在这种情况下,我希望在循环之前有一个char*space=“”
,然后在循环结束时放入space=“”,而不是使用bool和if语句
。它可能会使性能略有不同,或者根本没有,但我认为它更可读。谢谢,你的答案有效。最好的回复是有效的。最好的regardsWell接受他的回答!虽然Nick确实有道德上的胜利,那就是成为唯一一个没有错的代码,但我相信他也会欣赏绿色的勾选。
bool perfecto(int n)
{
int suma, i;
suma = 0;
bool first = true;
for (i = 1; i < n; i++)
{
if (n % i == 0)
{
suma += i;
if ( !first )
{
cout << " ";
}
cout << i;
first = false;
}
}
if (suma == n)
return true;
else
return false;
}
bool perfecto(int n)
{
int suma, i;
suma = 0;
bool first = true;
for (i = 1; i < n; i++)
{
if (n % i == 0)
{
suma += i;
if(!first)
{
std::cout << " ";
}
else first = false;
cout << i;
}
}
if (suma == n)
return true;
else
return false;
}