程序设计1
- 问题1_1
- 代码1_1
- 结果1_1
- 问题1_2
- 代码1_2
- 结果1_2
- 问题1_3
- 代码1_3
- 结果1_3
问题1_1
计算如下公式:
S
=
3
2
2
−
5
4
2
+
7
6
2
−
⋅
⋅
⋅
−
(
−
1
)
n
−
1
2
n
+
1
(
2
n
)
2
,
S = \frac{3}{2^2}-\frac{5}{4^2}+\frac{7}{6^2}-···-(-1)^{n-1}\frac{2n+1}{(2n)^2},
S=223−425+627−⋅⋅⋅−(−1)n−1(2n)22n+1,
直到
∣
2
n
+
1
(
2
n
)
2
∣
≤
1
0
−
3
|\frac{2n+1}{(2n)^2}|\leq10^{-3}%
∣(2n)22n+1∣≤10−3,并且把计算结果作为函数值返回。
例如,若形参
e
e
e的值为
1
e
−
3
1e^{-3}
1e−3,则函数返回值为
0.551690
0.551690
0.551690。
代码1_1
#include<stdio.h>
double fun(double e){
int i,j;
double sum,n,x;
sum = 0;
i = 2;
j = 1;
x = 3.0/4;
while(x>e){
sum = sum + j*x;
j = j*(-1);
n = 2*i;
x = (n+1)/(n*n);
i++;
}
return sum;
}
void main(void){
double e = 1e-3;
printf("\n The result is: %f\n",fun(e));
}
结果1_1
问题1_2
函数
f
u
n
fun
fun的功能是:求出如下分数序列的前
n
n
n项之和,和值通过函数值返回。
2
1
,
3
2
,
5
3
,
8
5
,
13
8
,
21
13
⋅
⋅
⋅
\frac{2}{1},\frac{3}{2},\frac{5}{3},\frac{8}{5},\frac{13}{8},\frac{21}{13}···
12,23,35,58,813,1321⋅⋅⋅
例如,若形参
n
=
5
n=5
n=5,则函数返回值为
8.391667
8.391667
8.391667。
代码1_2
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
double fun(int n){
int a=2, b=1, c, k;
double s=0.0;
for(k=1; k<=n; k++){
s = s+(double)a/b;
c = a;
a = a+b;
b = c;
}
return(s);
}
void main(){
int n = 5;
system("CLS");
printf("\n The value of function is: %lf\n", fun(n));
}
结果1_2
问题1_3
函数 f u n fun fun的功能是:找出 2 x M 2xM 2xM整型二维数组中最大元素的值,并将此值返回调用函数。
代码1_3
#include<stdio.h>
#define M 4
int fun(int a[][M]){
int i,j,max = a[0][0];
/* 对二维数组进行遍历 */
for(i=0; i<2; i++){
for(j=0; j<M; j++){
if(max<a[i][j])
max = a[i][j]; //将最大值保存在 max 中
}
}
return max;
}
void main(){
int arr[2][M] = {5, 8, 3, 45, 76, -4, 12, 82};
printf("max = %d\n", fun(arr));
}