程序中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的情況