一个公平的警告——我对 C 非常陌生,并且有一些不可预测的行为。我不确定如何开始对此进行故障排除。
我正在尝试解决早期的欧拉问题之一(与数字回文有关),但我的检查功能遇到了问题。当一个数字a
通过时rev(a)
,一切正常。当通过ret(a)
(一个最终将检查相等性、布尔类型等的函数)时,它返回完全错误的数字——我认为这与内存有关。有人可以帮我吗?
#include <stdio.h>
#include <stdbool.h>
int rev(int a);
int check(int a);
main() {
int a = 12;
printf("%i ", a);
printf("%i ", rev(a));
printf("%i\n", ret(a));
}
int ret(int a){
return rev(a);
}
int rev(int a){
int b;
while (a>0){
b = (b*10) + a%10;
a/=10;
}
return b;
}