最赞回答 / DeathHunk
两年前的问题啊,估计楼主已经会了,为看此贴的后人解决一下吧!首先这个运行结果是和左边的代码不一致的,应该是老师在设置课件时没有注意的小BUGa的ASCII码是97,没错,输出也应如此;这里的一长串数字是“字符串”对应的编码值,已经不是对应的ASCII码了,你所用的IDE编码集不同,输出的数字也不一样。
2019-09-12
#include <stdio.h>
int main()
{
int i, j, result;
for( i=9 ; i>0 ; i-- )
{
for( j=1 ; j<=i ; j++ )
{
result=i*j;
printf("%d*%d=%d",i,j,result);
printf(" ");
}
printf("\n");
}
return 0;
}
int main()
{
int i, j, result;
for( i=9 ; i>0 ; i-- )
{
for( j=1 ; j<=i ; j++ )
{
result=i*j;
printf("%d*%d=%d",i,j,result);
printf(" ");
}
printf("\n");
}
return 0;
}
2019-09-12
最赞回答 / 慕先生2563854
运行没有影响,但是对代码运行的理解是不一样的。for(表达式1;表达式2;表达式3),前面有流程图说明三个表达式运行的顺序。1.没有=情况下,意思是在除1与本身以为,不存在整除数,不会提前跳出形成n!=m的情况,因此会在n=m-1执行最后一次循环后,进行n++运算,再进行n<m判断,明确的是,在这里已经存在了n=m,所以跳出循环。2.你加了=号的情况,更利于理解成,在找到n=m前,没有找到其他整除数,最后找到了n=m。这里需要提醒的是,如果在后面会用到n的值,需要清晰的理解n=?
2019-09-11