带你学C带你飞 课后作业 S1E21:指针 | 课后测试题及答案 part2_2
2.改进上一题的代码,用户输入一个表示范围的最大值 count,程序将测试 3 ~count 所有的整数是否都符合尼科彻斯定理。
附加要求:有些用户可能不希望看到打印一丢丢式子,所以是否打印应该让用户确定(提示->用二维数组先保存结果)。
我的答案:
#include <math.h>
#include <stdio.h>
#define _CRT_SECURE_NO_WARNINGS 1
#define TRUE 1
#define MAXNUM 50000 //取100000的时候会出问题,疑似超界
int main(void) {
unsigned int odd_num[MAXNUM], pow = 0, sum = 0;
unsigned int n = 4,
m = 10; // n和m都是要求用户输入的数,自己写就不用scanf了
unsigned int* p_odd = &odd_num[0]; // 指向数组的动态指针
unsigned int* p_odd_end = &odd_num[MAXNUM]; // 数组尾指针
int is_ok = 0; // 标记位,表示得出一个正确结果
int sum_begin = 0; // 遍历奇数数组起始位
int alpha = 0; // 符合结果数组步长
//构建连续奇数数组
for (int i = 0; i < MAXNUM; i++) {
*p_odd = 2 * i + 1;
p_odd++;
}
for (; n <= m; n++) {
pow = n * n * n;
while