Каким должен быть вывод этой программы на C?
int main()
{
int x=1,y=1,z;
if (z=(y>0)) x=5;
printf("%d %d",x,z);
return 0;
}
Как и ожидалось, вывод равен X = 5, а Z = 1. Это потому, что когда вычисляется выражение y> 0, оно истинно итак далее и так далее.Теперь проблема в этой программе:
int main()
{
int x,y;
for (y=1;(x=y)<10;y++)
;
printf("%d %d",x,y);
return 0;
}
не должен ли вывод быть бесконечным циклом?Причина в том, что (x = y) всегда будет возвращать true (1), который всегда меньше 10?