学习C语言时的一个小疑点

学习C语言时的一个小问题
将1元钱兑换成1分,2分,5分的硬币,共有多少种不同换法?
#include"stdio.h"
main()
{
int x,y,z;
for(x=0;x<=20;x++)
for(y=0;y<=50;y++)
{
if(5*x+2*y+z==100)
printf("5分硬币有%d\t2分硬币有%d\t1分硬币有%d\n",x,y,z);
}
}
编译时没提示错误,编译后运行没反应,不知何解

------解决方案--------------------
z呢,,,没初始化
也没for 循环~~
------解决方案--------------------
z没有初值没有计算进去的原因。这样写
#include"stdio.h"
main()
{
int x,y,z;
for(x=0;x<=20;x++)
for(y=0;y<=50;y++)
for(z=0;z<=100;z++)
{
 if(5*x+2*y+z==100)
 printf("5分硬币有%d\t2分硬币有%d\t1分硬币有%d\n",x,y,z);
}
}

------解决方案--------------------
使用未初始化的数据,其结果是未定义的
lz你知道z变量一开始的值么