跳过每三个数字

时间:2018-03-07 20:54:47

标签: c++ loops include counter iostream

我的任务是从最小到最大打印一组数字(用户输入分钟和混音),但是每三个数字打印一个" x"代替。我不确定如何设置它。我的朋友建议使用count ++,但我不能让它正常工作。它运行但它没有显示任何X.

test 'must have attachable' do
  attachment = Attachment.new.tap(&:valid?)
  assert_includes(attachment.errors.details[:attachable], { error: :blank })
end

}

2 个答案:

答案 0 :(得分:2)

您需要在循环之前创建i,就像在您的代码中每次迭代创建一个新代码一样,并且不要将int count = 0; for(int i=min; i<=max; i++){ if (++count==3){ cout<<setw(4)<<"X"; count = 0; } else // print i only when X is not printed cout<<setw(4)<<i; } 打印成X而不是:

{{1}}

答案 1 :(得分:1)

模数运算符%返回除法运算的剩余部分。每个循环执行count++,因此语句count % 3为每个循环迭代返回1,2,0,1,2,0等。

当结果为0时,您知道是时候打印'X'了。如果没有,请打印i

请务必在count1开始,这样您就不会在第一次迭代时打印'X'

void no_5_count_from_min_to_max_skip_two(int min, int max)
{
    cout << "5.Counting from min to max but skip two:";
    cout << endl;

    for (int i = min, count = 1; i <= max; i++, count++)
    {
        if ((count % 3) == 0)
            cout << setw(4) << "X";
        else
            cout << setw(4) << i;
    }
    cout << endl;
}