#include <stdio.h>
#include <stdint.h>
#include <inttypes.h>
#include <stdbool.h>
int32_t calculated_power(int32_t base_num, int32_t exponent_num);
int main() {
// 编写一个底数不限制正负,而指数为非负数的用于计算幂的功能
// 输入底数
puts("请输入底数:");
int32_t base_num;
scanf_s("%" PRId32, &base_num);
printf("base_num = %" PRId32 "\n", base_num);
// 输入指数
puts("请输入指数:");
int32_t exponent_num;
// 死循环用于判定输入的指数是否为非负数
while (true) {
scanf_s("%" PRId32, &exponent_num);
// 判定指数小于零无效
if (exponent_num < 0) {
puts("输入的数有误,请输入一个非负数!");
puts("请进行下一次指数输入:");
continue; // 跳过后面语句进入下一次循环
}
// 判定指数大于零
if (exponent_num >= 0) {
break; // 退出死循环
}
}
printf("exponent_num = %" PRId32 "\n\n", exponent_num);
// 输出幂的结果
printf("(%" PRId32 ") ^ %" PRIu32 " = %" PRId32 "\n", base_num, exponent_num, calculated_power(base_num, exponent_num));
return 0;
}
int32_t calculated_power(int32_t base_num, int32_t exponent_num) {
int32_t power_num = base_num;
// 计算当指数为 0 而底数不为 0时的幂
if (exponent_num == 0 && base_num != 0) {
return power_num = 1;
}
// 当指数和底数都为 0 时返回幂为 0
if (exponent_num == 0 && base_num == 0) {
puts("所输入的数不符合运算规则!");
return power_num = 0;
}
// 计算指数不为 0 时的幂
if (exponent_num != 0) {
for (uint32_t i = 1; i < exponent_num; i++) {
power_num *= base_num;
}
return power_num;
}
return 0;
}
声明:本文章仅是个人学习C语言的分享,博主是C语言小白
代码使用Visual studio 2022版编写
代码涉及函数、卫语句、死循环、可移植整型的使用
相关知识学习可以参考B站 Micro_Frank 的《C语言大师:编得狂,骂得响》系列