給學習C語言的新手的求和程式及求積程式

來源:互聯網
上載者:User

很多初學C語言的人,一開始都會有求和以及求積的程式,如果用簡單的將輸入的數一個個加起來那樣是很繁瑣的,當然效率是高的,但是程式看起來非常不簡潔!如果你學慣用遞迴方式求解,你會發現一切都是那麼簡單!下面的例子就是用遞迴方式求和以及求積。

#include<stdio.h>
#include<stdlib.h>
#define N 10

float  g(float a[],int n); /*求和函數*/
float f(float a[],int n);  /*求積函數*/
/*為了保證正確度,所有的類型都用浮點型表示,雖然這多消耗了內
存,但能得到更正確的結果,所以這是值得的*/
int main()
{
    float x[N+1],y[N+1],sum,num;
    int i;
    x[0]=1,y[0]=0; /*零位不用,置一*/
    for(i=1;i<=N;i++){
         printf("please input a type of float :\n");
         scanf("%f",&x[i]);
    }
    for(i=0;i<=N;i++){
        y[i]=x[i];
    }
    num=g(x,N);sum=f(y,N);   /*一定要用兩個數組,因為數組做參數,不是傳值調用*/
    printf("sum is %f\nthe average sum is %f:\n",sum,sum/N);
    printf("num is %f\nthe average num is %f:\n",num,num/N);
    getch();return 0;

}
/**功能:求數組的積
  返回參數: 數群組類型a,整數n代表數組中含有多少個元素
  傳入參數: 數組的積
*/
float f(float a[],int n)  /*有n個元素存放在數組a中,實際有n+1*/
{
    float s=0;
    if(n==1){
       return  a[1];
    }
    else if(n<=0){    /*這種情況不可能發生,只是用於示範*/
       printf("the code is full of errors,the programme will exit");
       exit(0);
    }
    else {
        s=a[n];
        a[n]=1;  /*該位置一,以在後續運算中清除*/
        return (s*f(a,n-1));
         
    }
}
/**功能:求數組的和
  返回參數: 數群組類型a,整數n代表數組中含有多少個元素
  傳入參數: 數組的和
*/
float g(float a[],int n)
{
     float s=0;
     if(n==1)
        return a[1];
     else if(n<=0){      /*這種情況不可能發生,只是用於示範*/
       printf("the code is full of errors,the programme will exit");
       exit(0);
     }
     else {
       s=a[n];
       a[n]=0;
       return (s+g(a,n-1));
     }
}

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.