C语言输出1至100之间每位数的乘积大于每位数的和的数

这是我改的代码 我只改了 k=k*m 为什么结果就不一样了?难道k=k*m%10跟k*=m%10不一样吗?

不一样,k=k*m%10是先计算k*m,然后再%10,得到的结果永远小于10。
k*=m%10是把k乘以一个小于10的数,最后结果可能会大于10,而且越来越大。
其实k*=m%10等价于k=k*(m%10)。
而k=k*m%10等价于k=(k*m)%10。追问

我就是搞不懂为什么k*=m%10会先计算m%10不是应该先算k*m吗?

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-01-18
k*=m%10等效于k=k*(m%10)
第2个回答  2018-02-19
#include <stdio.h>
void main()
{
int a=1;
int b; //指定3个内存
int c;
do //执行语句开始
{
a++; //a自加
b=a/10; //a除于10得到第一位数
c=a%10; //a取余数10得到第二位数
if(c*b>c+b) //如果第一位数乘第二位数大于第一位数加第二位数
printf("%d \n",a);//输出当前a的数值
}while (a<100);//a小于100继续执行
getchar();//停止等待输入
}
相似回答