我想输入一个整数m,这个整数的各个位数上的数相加和为r,如果m能被r整除,输出ture, 反之输出false,但我写的这个不管输入什么都会输出ture,我试着直接输出r,是没有问题的

我想输入一个整数m,这个整数的各个位数上的数相加和为r,如果m能被r整除,输出ture, 反之输出false,但我写的这个不管输入什么都会输出ture,我试着直接输出r,是没有问题的

关注
#include <stdio.h>
int main() {
int m, r = 0, temp;
// 输入整数m
printf("请输入一个整数: ");
scanf("%d", &m);
// 计算各个位数的和r
temp = m;
while (temp > 0) {
r += temp % 10; // 获取个位数并累加到r
temp /= 10; // 去掉个位数
}
// 输出r的值,检查是否正确
printf("各位数之和 r = %d\n", r);
// 判断m是否能被r整除
if (r != 0 && m % r == 0) {
printf("true\n");
} else {
printf("false\n");
}
return 0;
}