一、前言
提示:以下是博主自己写的代码,仅供参考,欢迎有兴趣的朋友们留言讨论呀
二、正文
1.第一题
2. 第二题
#include<stdio.h>
#include<math.h>
void main()
{
double n = 1, sum = 0, x = 1, a = 1;
while (fabs(x) > 1e-6)
{
sum += x;
n += 2;
a *= -1;
x = a / n;
}
sum += x;
printf("Π的近似值为:%lf\n", sum * 4);
}
运行结果示例:
手写版:
3.第三题
4.第四题
#include<stdio.h>
#define N 4
int aa[N][N];
// 1代表向上走,-1代表向下走
int flag = 1;
void fill();
void main()
{
// 填充二维数组
fill();
// 输出
printf("N=%d\n", N);
for (int i = 0; i < N; i++)
{
for (int j = 0; j < N; j++)
{
printf("%d\t", aa[i][j]);
}
printf("\n");
}
}
void fill()
{
// 从左下角开始赋值
int i = N - 1, j = 0;
aa[i][j] = 1;
for (int n = 2; n <= N * N; n++)
{
// 向上走
if (flag == 1)
{
// 填充左上,不变向
if (i - 1 >= 0 && j - 1 >= 0)
{
i--;
j--;
}
// 填充正上,变向
else if (i - 1 >= 0)
{
i--;
flag *= -1;
}
// 填充右,变向
else
{
j++;
flag *= -1;
}
}
// 向下走
else if (flag == -1)
{
// 填充右下,不变向
if (i + 1 <= N - 1 && j + 1 <= N - 1)
{
i++;
j++;
}
//填充右,变向
else if (j + 1 <= N - 1)
{
j++;
flag *= -1;
}
// 填充正上,变向
else
{
i--;
flag *= -1;
}
}
aa[i][j] = n;
}
}
运行结果示例:
手写版: