(不好意思小宣傳一下我的繪圖 希望大家喜歡)

 

\\

這是我的海苔貓粉專

www.facebook.com/norinekocat/

 

海苔貓IG

海苔貓Instagram

 

謝謝大家:))

裡面有許多繪圖作品~ 希望大家支持我會繼續努力

請多多指教哦

 



 

C語言教學手冊(四版)-練習題解答】

 第8章

C語言教學手冊(四版)-博客來網址

      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

                  k=1
      並於主程式裡計算 my_fun(3)、my_fun(4)、my_fun(5) 與 my_fun(6) 的值。
(b) 如果將 n 值加大,my_fun(n) 的結果會趨近於一個定值,試問此定值是多少
(c) 試問 n 值最少要多大時,my_fun(n) 的結果才會大於 0.99999?
 

(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. 試依序回答下面的問題:

 (a) 撰寫一函數 double my_fun (int n),可用來計算下面的數學式(提示,您可以 利用 prog8_8 所定義的 fac(n) 函數來計算分母):  

                         n

my_fun(n) = 1/k!= 1/1! + 1/2! + 1/3! +...+ 1/n!

                  k=1
     並於主程式裡計算 my_fun(5)、my_fun(8) 與 my_fun(10) 的值。 
(b) 試問 n 值最少要多大時,my_fun(n-1) 與 my_fun(n) 的差值才會小於 0.00001?

 

(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. 試依序回答下面的問題:

 (a) 撰寫一函數 double my_fun (double x, int n),可用來計算下面的數學式(提 示,您可以分別利用 prog8_6 所定義的 power(x,n)  與 prog8_8 所定義的 fac(n) 來計算分子與分母):  

                         n

my_fun(n) =  X^k / k!= X^0/0! + X^1/1! + X^2/2! + X^3/3! +...+  X^n / n!

                  k=0
並於主程式裡計算 my_fun(0.1, 5)、my_fun(0.1, 8) 與 my_fun(0.2, 8) 的值。 
(b) 試問 n 值最少要多大時,my_fun(0.1, n-1) 與 my_fun(0.1, n) 的差值才會小於 0.00001?

 

#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. 試依序回答下面的問題:

 (a) 撰寫一函數 double my_fun (double x, int n),可用來計算下面的數學式(提 示,您可以分別利用 prog8_6 所定義的 power(x,n) 與 prog8_8 所定義的 fac(n) 來計算分子與分母):

                         n

my_fun(n) =  (-1)^k * x^(2k+1) / (2k+1)!

                  k=0
並於主程式裡計算 my_fun(2.2, 3)與 my_fun(2.2, 5)的值。
 (b) 試問 n 值最少要多大時,my_fun(2.2, n-1) 與 my_fun(2.2, n) 的差值才會小於 0.0001?

#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新的貼圖終於出來了💜💜💜可愛的海苔貓-第三代

 

海苔貓繪圖作品\\

希望大家支持~~

 

海苔貓粉專

海苔貓IG

arrow
arrow
    文章標籤
    C語言 解答 第8章
    全站熱搜

    海苔貓Nori 發表在 痞客邦 留言(0) 人氣()