azazinco
2019-10-03 22:23
采纳率: 44.4%
浏览 124

这段代码为什么输入8 5没有任何输出

问题:N个人围成一圈,从第一个人开始报数,数到M的人出圈;再由下一个人重新开始报数,数到M的人出圈;…输出依次出圈的人的编号。N,M由键盘输入。

#include <iostream>
using namespace std;
bool a[101]
int main()
{
    int m, n;
    cin >> n >> m;
    cout << endl;
    for (int i = 1; i <=n; i++)
        a[i] = false;
    int f = 0, t = 0, s = 0;
    do {
        ++t;
        if (t == n + 1)
            t = 1;
        if (a[t] == false)
            ++s;
        if (s == m)
            {
                s = 0;
                cout << t << " ";
                a[t] == true;
                ++f;
            }
    } while (f != 0);
    return 0;
}
  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • threenewbee 2019-10-04 09:47
    已采纳
    // Q839540.cpp : This file contains the 'main' function. Program execution begins and ends there.
    //
    
    #include <iostream>
    using namespace std;
    
    bool a[101];
    int main()
    {
        int m, n;
        cin >> n >> m;
        cout << endl;
        for (int i = 1; i <= n; i++)
            a[i] = false;
        int f = n, t = 0, s = 0;
        do {
            ++t;
            if (t == n + 1)
                t = 1;
            if (a[t] == false)
                ++s;
            if (s == m)
            {
                s = 0;
                cout << t << " ";
                a[t] = true;
                --f;
            }
        } while (f != 1);
        return 0;
    }
    
    

    8 5

    5 2 8 7 1 4 6

    已采纳该答案
    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题