我需要制作一个程序来计算用户输入的特定数量的数字

时间:2018-04-05 06:35:30

标签: c++ numbers

首先请允许我说,我一直试图了解如何在数小时内完成此操作,但我无法理解。所以任何帮助都表示赞赏!

所以基本上我需要制作一个程序来计算用户输入的特定数量的数字。一个例子是如果用户输入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;
}

5 个答案:

答案 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 << ",";
    }
}