请教C++中for循环相关问题

经典搬砖问题:现有n块砖,要由n个人一次搬完,假定男人一次可以搬4块,女人一次可以搬3块,两个小孩可以一起搬1块,计算这n人中男人、女人和小孩的人数。
要求如下:用户输入人数和砖数n,程序输出可能的解决方案。如果没有满足的情况,显示提示信息“无解!”。输出格式见样例,有多组方案时,按男人数量从多到少的顺序输出。男人数量相同时,女人数量从少到多。

我写的代码如下:

#include<iostream>
using namespace std;
int main()
{
    int n,m,f,c,i=1;
    cout << "请输入人数和砖数n=";
    cin >> n;
    for(m=n;m>=0;m--)
    {
        for(f=n;f>=0;f--)
        {
            c = (n-4*m-3*f)*2;
            if(c%2==0 && m+f+c==n)
            {
                cout << "男" << m << "女" << f << "孩" << c << endl;
                i++; 
            }
        }
    }
    if(!i)
    {
        cout << "无解!" << endl;
    }
    return 0;
}

可是我输入n=1时并没有输出”无解“,想必是在循环中没有出来,请教各位应该如何解决呢?

你把i初始化为1了啊,循环里只有i++,那i永远大于0,自然if(!i)永远不成立。
i初始化为0就行

n=1不是无解啊,一个男人或一个女人可以搬完,你这程序就设计错了