我写了一个,但答案不对,c语言小白,求大神指教,谢谢

已知鸡与兔总数为n,总腿数为m,输入n,m,求鸡和兔的数目。
#include
int main()
{
int m,n,i,j,flag=0;
scanf("%d%d",&n,&m);
for(i=1;i<n;i++){
if(flag=1)
break;
for(j=1;j<n;j++){
if(m==i*2+j*4)
{
printf("%d %d\n",i,j);
flag=1;
break;
}

}
}

}
不知道为何运行不出来正确答案

第一:代码的思路不对,首先要保证鸡兔的数量i+j=n,再判断腿的数量是否等于m;
第二:是 if(flag = 1) 判断应用两个等号;
第三:鸡兔数量可能为零。
修改后的代码可参考如下代码:

#include<bits/stdc++.h>
int main()
{
    int m,n,i,j,flag=0;
    scanf("%d%d",&n,&m);
    for(i=0;i<=n;i++)
    {
        j=n-i;
        if(m==i*2+j*4)
        {
            printf("%d %d\n",i,j);
            break;
        }
    }
}