1.背景

2022.3.12遇到一位老哥询问问题,让我找出错误

#include<stdio.h>
double power(double n, int p);
int main() {
	double x, xpow;
	int exp;
	printf("请输入一个数字和它的次方根:\n");
	while (scanf("%1f %d", &x, &exp) == 2) {
		xpow = power(x, exp);
		printf("%.3g to the power %d is %.5g \n", x, exp, xpow);

		//TODO
	}
	return 0;
}
double power(double n, int p) {
	double pow = 1;
	int i;
	if (n == 0 && p == 0) {
		printf("the %g to the power %d is not define ,return 1\n", n, p);
		return 1;

		//TODO
	}
	if (n == 0) return 0;
	if (p == 0) return 1;
	if (p > 0) {
		for (int i = 1; i <= p; i++)
			pow *= n;
		return pow;
		//TODO
	}
	else {
		for (int i = 1; i <= -p; i++) {
			pow *= n;
			return 1 / pow;
			//TODO
		}
	}
}
//TODO

//TODO

3.12有意思的错误_c语言

2.思索再三,最终发现

3.12有意思的错误_学习_02

此处的 lf打成了1f

3.总结

在以后的书写中应当注意格式,避免再犯此类错误!!!