程序中for(t=31;t*t<k;t );为什么要分号才能正常运行?#include "stdio.h"#include "math.h"void main(){int i,j,k,t;for(i=1;i<=9;i++)for(j=0;j<=9;j++)if(i!=j){ k=i*1000+i*100+j*10+j; for(t=31;t*t<k;t++); if(t*t==k) printf("Lorry--No.is:%d.\n这个数是%d的平方\n",k,t);}}//程序中for(t=31;t*t<k;t++);为什么要分号才能正常运行?

热心网友

如果没有那个分号,你的IF就在循环当中了.那么就失去IF的必要了.因为要执行到这一句的条件是T*T<K,也就不会出现到T*T==K的情况呀.这是编译程序的一种语句优化功能.

热心网友

。。。for(t=31;t*t

热心网友

for循环语句的语法就这么规定的,三个部分之间用分号进行分隔。比如说for(i=1,j=1;i<=9 && j<=9;i++,j++){。。。。。。}这样的语句也是成立的,这个语句表示:先给i和j赋初值1,当i<=9并且j<=9的条件成立时,进行下面循环中的语句,每次循环后i和j都分别+1。

热心网友

如果没有那个分号,你的IF就在循环当中了.那么就失去IF的必要了.因为要执行到这一句的条件是T*T<K,也就不会出现到T*T==K的情况