(不好意思小宣傳一下我的繪圖 希望大家喜歡)
\\♥
謝謝大家:))
C語言教學手冊(四版)-練習題解答】
第8章
8.3 撰寫第一個 C 程式語言
12. 試依序回答下面的問題:
(a) 撰寫一函數 double my_fun (int n),可用來計算下面的數學式:
n
my_fun(n) = ∑ 1/(2^k)= 1/2 + 1/2^2 + 1/2^3 +...+ 1/2^n
(a)
# include <stdio.h>
double my_fun(int);
int main ()
{
int n;
printf("my_fun (%d)= %lf ", 3,my_fun(3));
printf("my_fun (%d)= %lf ", 4,my_fun(4));
printf("my_fun (%d)= %lf ", 5,my_fun(5));
printf("my_fun (%d)= %lf ", 6,my_fun(6));
}
double my_fun(int n)
{
int k;
double sum=0.0;
for(k=1;k<=n;k++)
sum+=1.0/power(2,k);
return sum;
}
int power(int base, int n)
{
int i;
int pow=1;
for(i=1;i<=n;i++)
pow*=base;
return pow;
}
(b)
趨近於1
(c)
//中間
{
int f1;
while(1) {
f1=my_fun(n);
if (f1<=0.999999){
n=n+1;
}
else {
break;
}
}
printf("當my_fun(%d)),大於0.99999\n", n);}
13. 試依序回答下面的問題:
n
my_fun(n) = ∑ 1/k!= 1/1! + 1/2! + 1/3! +...+ 1/n!
(a)
# include <stdio.h>
double my_fun(int);
int main ()
{
int n;
printf("my_fun (5)= %lf ",my_fun(5));
printf("my_fun (8)= %lf ", my_fun(8));
printf("my_fun (10)= %lf ", my_fun(10));
}
double my_fun(int n)
{
int i;
double sum = 0.0;
for(i=1;i<=n;i++) {
fac = fac*i;
sum = sum + 1/fac; }
return sum;
}
int fac(int a)
{
int i,total=1;
for(i=1;i<=a;i++)
total*=i;
return total;
}
(b)
//中間加
{
int a,f1,f2;
while(1) {
f1=my_fun(n-1);
f2=my_fun(n);
a=fi-f2;
if (a>=0.0001){
n=n+1;
}
else {
break;
}
}
printf("當my_fun(%d)和my_fun(%d),誤差小於0.0001\n",n-1,n);}
14. 試依序回答下面的問題:
n
my_fun(n) = ∑ X^k / k!= X^0/0! + X^1/1! + X^2/2! + X^3/3! +...+ X^n / n!
#include<stdio.h>
double my_fun(double,int), power(double,int);
int fac(int);
int main()
{
printf("my_fun(0.1,5)=%f\n",my_fun(0.1,5));
printf("my_fun(0.1,8)=%f\n",my_fun(0.1,8));
printf("my_fun(0.2,8)=%f\n",my_fun(0.2,8));
}
double my_fun(double x,int n)
{
int k;
double sum=0.0;
for(k=1;k<=n;k++)
sum+=power(x,k)/fac(k);
return sum;
}
int fac(int a)
{
int i,total=1;
for(i=1;i<=a;i++)
total*=i;
return total;
}
double power(double base, int n)
{
int i;
double pow=1.0;
for(i=1;i<=n;i++)
pow*=base;
return pow;
}
(b)
//中間加
{
int a,f1,f2;
while(1) {
f1=my_fun(0.1,n-1);
f2=my_fun(0.1,n);
a=fi-f2;
if (a>=0.0001){
n=n+1;
}
else {
break;
}
}
printf("當my_fun(0.1,%d)和my_fun(0.1,%d),誤差小於0.0001\n",n-1,n);}
15. 試依序回答下面的問題:
n
my_fun(n) = ∑ (-1)^k * x^(2k+1) / (2k+1)!
#include<stdio.h>
double my_fun (double,int );
int main()
{
double x=2.2;
int n;
n=3;
printf("my_fun (%lf,%d)= %lf "”,x,n, my_fun(x,n));
n=5;
printf("my_fun (%lf,%d)= %lf "”,x,n, my_fun(x,n));
}
double my_fun (double x,int n);
{
int i;
double x;
double sum = 0;
for(i=1;i<=n;i++) {
fac = fac*i;
sum = sum + (-1)^n*x^(2*n)+1/(2*n)+1; }
return sum;
}
(b)
//中間加上
{
int a,f1,f2;
while(1) {
f1=my_fun(x,n-1);
f2=my_fun(x,n);
a=fi-f2;
if (a>=0.0001){
n=n+1;
}
else {
break;
}
}
printf("當my_fun(2.2,%d)和my_fun(2.2,%d),誤差小於0.0001\n",n-1,n);}
ps
p新的貼圖終於出來了💜
💜
💜
可愛的海苔貓-第三代
海苔貓繪圖作品\\
希望大家支持~~
♥