嗨我在启动这个程序时遇到了麻烦,因为我是新手,并且不知道如何使用循环来构建这个感谢
这是方向:
对于此作业,请编写名为
assignment2
的程序(来源与.cpp
扩展名相同)至 提示用户输入一个整数值(忽略负值),然后使用以下规则输出该值:
- 整数值中的每个数字将显示与数字值相同的次数 本身,有一个例外......数字0将显示一次,如数字1。
- 使用单个短划线字符分隔每个数字字符串。 例如:
如果输入值为120473
,则显示应如下所示:
1-22-0-4444-7777777-333
如果输入值为5938061
,则显示应如下所示:55555-999999999-333-88888888-0-666666-1
此外,询问用户是否要使用其他整数值重试。如果是这样,请重复上述步骤。结束 用户选择退出时的程序(不想重试)。
此作业是使用以下内容的练习:
一元经营者:
!
++
--
二元运算符:
+
-
*
/
%
&&
||
数据类型:
bool
char
int
enum
流量控制:
if
-else
switch
do
-while
循环
while
循环
for
循环此外,您可以使用Math库提供的任何必要功能。包括数学 库,将以下行添加到包含语句列表中:
#include <cmath>
答案 0 :(得分:0)
对于大多数数字操作分配,我建议将数字视为字符的字符串而不是数字。
让我们从基础开始:
#include <iostream>
#include <string>
#include <cstdlib>
using std::cout;
using std::cin;
using std::getline;
int main(void)
{
cout << "Paused. Press Enter to continue.\n";
cin.ignore(100000, '\n');
return EXIT_SUCCESS;
}
上述程序有望保持控制台(终端)窗口打开,直到按下Enter
键。
我们会要求用户提供一个号码,这也称为提示:
// The prompt text doesn't change so it's declared as const.
// It's declared as static because there is only one instance.
static const char prompt[] = "Enter a number: ";
cout.write(prompt, sizeof(prompt) - 1U); // Subtract 1 so the terminating nul is not output.
// Input the number as text
string number_as_text;
getline(cin, number_as_text);
实际上,在此步骤之前,您应该验证文本是否只包含数字。重复提示,直到用户输入任何内容或有效数据。
字符串可以作为数组访问。所以我们将建立一个循环:
const unsigned int length = number_as_text.length();
for (unsigned int index = 0U;
index < length;
++index)
{
// Extract the digit.
const char c = number_as_text[index];
// Verify it is a digit.
if (!isdigit(c))
{
continue;
}
unsigned int quantity = c - '0'; // Convert to a number.
if (quantity == 0) quantity = 1; // The requirements lie, for zero there is a quantity of 1.
// Use "quantity" to print copies of the character.
}
cout << "\n";
我不会为你编写整个程序,因为你没有为我的服务付费。所以你必须弄清楚何时打印' - '以及如何打印数字的许多副本。
如果此答案不正确,请通过一些说明或限制更新您的问题。