有没有人讲解一下运算过程

#include<sidio.h>
main( )
{
int x,y,z;
for(x=1;x<=20;x++)
for(y=1;y<34;y++)
{
Z=100-X-y;
if(x5+y3+z/3.0==100)
printf(" %d,%d, %d,\n",x,y,z);
}
}//有没有简便的运算方法

运算过程:
x 从1 到 20 取值,
y 从 1 到 33 取值
z =100 - (1~20) - (1~33) 变化取值
判断 if(x*5+y*3+z/3.0==100) 满足条件的输出 x y z .

头文件#include<sidio.h> 写错了,应该为:#include<stdio.h>

//x+y+z=100且满足5x+3y+z/3=100且1<=x<=20且1<=y<34

#include<stdio.h>
int main( )
{
    int x,y,z;
    for(x=1; x<=20; x++)
        for(y=1; y<34; y++)
            for(z=1; z<100; z++)
                if(x*5+y*3+z/3==100&&z==100-x-y)
                    printf(" %d, %d, %d  \n",x,y,z);
}

//x+y+z=100且满足5x+3y+z/3=1001<=x<=201<=y<34

在1<=x<=20, 1<=y<=33的范围内求解方程组
x+y+z=100
5x+3y+z/3=100
的所有整数解
就这题而论,更简单的计算需要对方程组进行如下转换
x+y+z=100
15x+9y+z=300

然后
x+y+z=100
14x+8y=200

最后
7x+4y=100
x+y+z=100

于是

for (int x=100/7; x>=0; y--) {
  if (x<0) continue;
 if (x>20) continue;
  int y = (100 - 7 * x )/4;
  if ((4 * y  +  7 * x) != 100) continue;
  if (y<0 ) continue;
  if (y>33) continue;
  z = 100 - x - y ;
  printf(...);
}