如何在每个有符号整数之间添加一个“+”
How do I add a "+" in between each signed integer
输出必须像这样(示例):
1+2+3+4
我得到的是:
1+2+3+4+
我没有使用任何函数来添加“+”,我只是在创建 'num':
的循环中执行以下操作
printf("%d+", num);
如何删除最后一个“+”? with printf 还有其他足够的方法吗?我搜索了一堆,只得出将数字存储在数组中然后打印它们的结论;使用删除最后一个字符的函数。问题是,我不允许在这种情况下使用数组..
编辑: 我尝试的另一种方法是在“%d”中使用“+”标志:
printf("%+d", num);
虽然这似乎比我正在做的方法更有效,但我仍然需要删除开头的“+”:
+1+2+3+4
任何帮助都会很好!
编辑: 这是我的循环函数:
int perfectNumGen(int num)
{
int perfNumAlgo = pow(2, num - 1)*(pow(2, num) - 1);
int factorNum = 1;
printf("%d=", num);
while (factorNum < num)
{
if (num % factorNum == 0)
printf("%+d", factorNum); //this is where i need help
factorNum++;
}
}
在没有“+”的情况下打印一个数字
printf("%d", num);
然后循环执行
printf("+%d", num);
根据你的代码。这应该有效
int perfectNumGen(int num)
{
int perfNumAlgo = pow(2, num - 1)*(pow(2, num) - 1);
int factorNum = 1;
printf("%d=", num);
if (num % factorNum == 0)
printf("%d", factorNum);
factorNum++;
while (factorNum < num)
{
if (num % factorNum == 0)
printf("+%d", factorNum); //this is where i need help
factorNum++;
}
}
我同意这不是最好的方法..它确实让代码看起来有点脏..但是执行时间不会受到影响..
在您的循环中,根据迭代次数打印该行。即:
int lim = 4;
for (int num = 0; num < lim; num++)
{
if (num < lim)
{
printf("%d+", num);
}
else
{
printf("%d", num);
}
}
我有一个妙招给你:
您可以在所有数字后打印 "\b "
(不可见的背面 space 符号和一个 space)。
\b
将不可见的光标向后移动一个符号。然后 space 将在最后 +
打印 "above" 并将其擦除。
输出必须像这样(示例):
1+2+3+4
我得到的是:
1+2+3+4+
我没有使用任何函数来添加“+”,我只是在创建 'num':
的循环中执行以下操作printf("%d+", num);
如何删除最后一个“+”? with printf 还有其他足够的方法吗?我搜索了一堆,只得出将数字存储在数组中然后打印它们的结论;使用删除最后一个字符的函数。问题是,我不允许在这种情况下使用数组..
编辑: 我尝试的另一种方法是在“%d”中使用“+”标志:
printf("%+d", num);
虽然这似乎比我正在做的方法更有效,但我仍然需要删除开头的“+”:
+1+2+3+4
任何帮助都会很好!
编辑: 这是我的循环函数:
int perfectNumGen(int num)
{
int perfNumAlgo = pow(2, num - 1)*(pow(2, num) - 1);
int factorNum = 1;
printf("%d=", num);
while (factorNum < num)
{
if (num % factorNum == 0)
printf("%+d", factorNum); //this is where i need help
factorNum++;
}
}
在没有“+”的情况下打印一个数字
printf("%d", num);
然后循环执行
printf("+%d", num);
根据你的代码。这应该有效
int perfectNumGen(int num)
{
int perfNumAlgo = pow(2, num - 1)*(pow(2, num) - 1);
int factorNum = 1;
printf("%d=", num);
if (num % factorNum == 0)
printf("%d", factorNum);
factorNum++;
while (factorNum < num)
{
if (num % factorNum == 0)
printf("+%d", factorNum); //this is where i need help
factorNum++;
}
}
我同意这不是最好的方法..它确实让代码看起来有点脏..但是执行时间不会受到影响..
在您的循环中,根据迭代次数打印该行。即:
int lim = 4;
for (int num = 0; num < lim; num++)
{
if (num < lim)
{
printf("%d+", num);
}
else
{
printf("%d", num);
}
}
我有一个妙招给你:
您可以在所有数字后打印 "\b "
(不可见的背面 space 符号和一个 space)。
\b
将不可见的光标向后移动一个符号。然后 space 将在最后 +
打印 "above" 并将其擦除。