編寫可變參數的函數

來源:互聯網
上載者:User

/***********************************************/
/*                                             */
/*            編寫可變參數的函數               */
/*             xwlee 2006/12/4                 */
/***********************************************/
#include <stdio.h>
#include <stdarg.h>
#include <time.h>

float average(int n_values, ...);

int main()
{
    int i,a[10];

    srand( (unsigned)time( NULL ) );
    for(i=0; i<10; ++i)
        a[i]=rand() % 100;
    for(i=0; i<10; ++i)
        printf("a[%d]=%d/n",i,a[i]);

    printf("average<01>=%f/n",
           average(1,a[0]));
    printf("average<02>=%f/n",
           average(2,a[0],a[1]));
    printf("average<03>=%f/n",
           average(3,a[0],a[1],a[2]));
    printf("average<04>=%f/n",
           average(4,a[0],a[1],a[2],a[3]));
    printf("average<05>=%f/n",
           average(5,a[0],a[1],a[2],a[3],a[4]));
    printf("average<06>=%f/n",
           average(6,a[0],a[1],a[2],a[3],a[4],a[5]));
    printf("average<07>=%f/n",
           average(7,a[0],a[1],a[2],a[3],a[4],a[5],a[6]));
    printf("average<08>=%f/n",
           average(8,a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7]));
    printf("average<09>=%f/n",
           average(9,a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8]));
    printf("average<10>=%f/n",
           average(10,a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9]));
    getch();
    return 0;
}

 

float average(int n_values, ...)
{
    va_list var_arg;
    int count;
    float sum = 0;

    va_start(var_arg,n_values);
    for(count=0; count<n_values; count++)
    {
        sum += va_arg(var_arg,int);
    }
    va_end(var_arg);

    return sum/n_values;
}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.