题目如下
或者解答一下十五到十八行,实在没有理解为什么可以编译出来,难道不是只能编译出%d>-%d*%d (第一次提问 )
第15行 至 第28行间,循环判断和输出,就是题目里要求的求整数的每位数的平方和,输出 b*b 或 b*b+, 最后一位的判断就是 c=c/10=0时 输出 b*b。c= c/10 ,每循环一次,将数缩小10倍,也就是将数的十位数字 搬到 个数上去,然后b*b。
比如输入c = 12:
第一次: b = c % 10 = 12 % 10 = 2, c = c / 10 = 12 / 10 = 1,
if (c != 0) printf() ==> 2 * 2 + ,
sum += b * b = 0 + 2 * 2 = 4.
第二次: b = c % 10 = 1 % 10 = 1, c = c / 10 = 1 / 10 = 0,
if (c == 0) printf() ==> 1 * 1,
sum += b * b = 4 + 1 * 1 = 5.
先给你解释15-18行吧
这一行主要是取输入的数字中每个位置的数,比如12你得取出1和2,然后再做题设中的运算