每行显示4个输出

Display output 4 per line

本文关键字:输出 4个 显示      更新时间:2023-10-16

我第一次上编程课,也是这个论坛的新手。任何帮助将非常感激!在我的一次课堂作业中,我必须写一个程序来找出给定数字的因子,我已经把程序启动并运行了,但是其中一个规定是输出必须显示为一行四,这就是我遇到麻烦的地方。我在其他一些论坛上也读过,但我想我不明白在我的特殊情况下我必须做什么。

下面是我的代码:
#include <iostream>
using namespace std;
int main(){
    int n;
    while (cout << "Please enter a number: " && !(cin >> n)  || (n < 0.0) || cin.peek() != 'n')
    {
        cout << "Input must be a positive number!" << endl;    
        cin.clear();
        cin.ignore(numeric_limits<streamsize>::max(), 'n');
    }
    for (int i=2; i <= n; i++)
    {
        while (n % i == 0)
        {
            n /= i;
            cout << "*" << i;
        }
    }
    cout << endl;
    system ("PAUSE");
    return 0;
}

您需要在循环外添加一个计数器。

//int counter = 0;
for (int i=2; i <= n; i++)
{
     while (n % i == 0)
    {
        n /= i;
        cout << "*" << i;
    }
}

计数器将需要跟踪已打印的条目数。

Once you have seen 4 entries printed:  
    print an extra newline  
    and set the counter back to 0

您可以使用以下命令:

void display_factors(std::size_t n, std::size_t factor_by_line)
{
    const char* sep = "";
    std::size_t count = 0;
    std::cout << n << " = ";
    for (int i = 2; i <= n; ++i) {
        while (n % i == 0) {
            n /= i;
            if (count == factor_by_line) {
                std::cout << std::endl;
                count = 0;
            }
            ++count;
            std::cout << sep << i;
            sep = " * ";
        }
    }
    std::cout << std::endl;
}

现场演示