首先请允许我说,我一直试图了解如何在数小时内完成此操作,但我无法理解。所以任何帮助都表示赞赏!
所以基本上我需要制作一个程序来计算用户输入的特定数量的数字。一个例子是如果用户输入15我的程序将会:1,2,3,4,5,6,7,8,9,10 11,12,13,14,15,
列表需要特别是10个数字宽,但它显示在图像中。
以下是成功代码和示例的示例。不成功的代码:link
到目前为止,这是我的代码:
#include "stdafx.h"
#include "iostream"
#include "iomanip"
using namespace std;
int main()
{
int userNum;
cout << "Please insert a number greater than 10 and less than 1000: ";
cin >> userNum;
if (userNum < 1000)
{
for (int i = 1; i <= userNum; i++)
{
cout << setw(1) << i << ", ";
}
}
system("pause");
return 0;
}
答案 0 :(得分:2)
由于程序只处理(10, 1000)
之间的数字,因此需要为三位数设置最大宽度。即从11到999。
这将给出picture中显示的输出:
#include <iostream>
#include <iomanip>
int main()
{
int userNum;
std::cout << "Please insert a number greater than 10 and less than 1000: ";
while(std::cin >> userNum )
{
if( (10 < userNum) && (userNum < 1000) )
{
for (int i = 1; i <= userNum; i++)
{
std::cout << std::setw(3) << i << ", ";
if(i % 10 == 0) std::cout << std::endl;
}
std::cout << std::endl;
break;
}
std::cout << "Please insert a number greater than 10 and less than 1000: ";
}
system("pause");
return 0;
}
答案 1 :(得分:0)
首先:使用setw(3)
,它会将cout
打印内容的宽度设置为3,因为userNum
的最大值为999 width = 3。
秒:使用以下代码在显示的每10个项目后打印新行:
if(i%10 == 0) {
cout << endl;
}
最终解决方案是:
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
int userNum;
cout << "Please insert a number greater than 10 and less than 1000: ";
cin >> userNum;
if (userNum >10 && userNum < 1000)
{
for (int i = 1; i <= userNum; i++)
{
cout << setw(3) << i << ", ";
if(i%10 == 0) {
cout << endl;
}
}
}
return 0;
}
答案 2 :(得分:0)
看起来你需要连续打印10个数字,下一个数字应该出现在下一行。 请更新您的for循环,如下所示:
for (int i = 1; i <= userNum; i++)
{
cout << setw(1) << i << ", ";
if(i % 10 == 0)
{
cout<<"\n";
}
}
答案 3 :(得分:0)
int main()
{
int userNum;
int i;
cout << "Please insert a number greater than 10 and less than 1000: ";
cin >> userNum;
cout<<"\n";
if (userNum > 10 && userNum < 1000)
{
for (i = 1; i < userNum; i++)
{
cout << i << ", ";
if(i%10 == 0){ // for newline after each 10th number
cout<<"\n";
}
}
cout<< i;
}
system("pause");
return 0;
}
希望有帮助
答案 4 :(得分:0)
仔细观察,每行末尾的输出中没有,
。因此,您还需要检查,
。
if (userNum >10 && userNum < 1000)
{
for (int i = 1; i <= userNum; i++)
{
cout << setw(3) << i;
if(i%10 == 0)
cout << endl;
else
cout << ",";
}
}