亚洲最大看欧美片,亚洲图揄拍自拍另类图片,欧美精品v国产精品v呦,日本在线精品视频免费

  • 站長(zhǎng)資訊網(wǎng)
    最全最豐富的資訊網(wǎng)站

    《C語言實(shí)驗(yàn)指導(dǎo)》實(shí)驗(yàn)八 函數(shù)

    實(shí)驗(yàn)八 函數(shù)

    【目的與要求】

    1.掌握C語言函數(shù)的定義方法、函數(shù)的聲明及函數(shù)的調(diào)用方法。

    2.了解主調(diào)函數(shù)和被調(diào)函數(shù)之間的參數(shù)傳遞方式。

    【上機(jī)內(nèi)容】

    【一般示例】

    【例1】寫一個(gè)判斷素?cái)?shù)的函數(shù),在主函數(shù)輸入一個(gè)整數(shù),輸出是否素?cái)?shù)的信息。

    源程序如下:

    mian()

    {

    int number;

    printf(“請(qǐng)輸入一個(gè)正整數(shù):n”);

    scanf(“%d”,&number);

    if (prime(number))

    printf(“n %d是素?cái)?shù).”,number);

    else

    printf(“n %d不是素?cái)?shù).”,number);

    }

    int prime(number) /*此函數(shù)用于判別素?cái)?shù)*/

    int number;

    {

    int flag=1,n;

    for(n=2;n<number/2&&flag==1;n++)

    if (number%n==0)

    flag=0;

    return(flag);

    }

    判斷素?cái)?shù)的算法,我們?cè)谝郧皩W(xué)習(xí)循環(huán)的時(shí)候已經(jīng)學(xué)過了,在這里只是把這個(gè)算法用函數(shù)的形式表示出來。這里我們要注意函數(shù)的定義、聲明的方法和格式。

    【例2】寫一函數(shù),是給定的一個(gè)二位數(shù)組(4×4)轉(zhuǎn)置,即行列互換。

    源程序如下:

    /*矩陣的轉(zhuǎn)置*/

    #define N 4

    int array[N][N];

    convert(array)

    int array[4][4];

    {

    int i,j,t;

    for (i=0;i<N;i++)

    for (j=i+1;j<N;j++)

    {

    t=array[i][j]; array[i][j]=array[j][i]; array[j][i]=t;

    }

    }

    main()

    {

    int i,j;

    printf(“輸入數(shù)組元素:n”);

    for (i=0;i<N;i++)

    for (j=0;j<N;j++)

    scanf(“%d”,&array[i][j]);

    printf(“n數(shù)組是:n”);

    for (i=0;i<N;i++)

    {

    for (j=0;j<N;j++)

    printf(“%5d”,array[i][j]);

    printf(“n”);

    }

    conver(array);

    printf(“轉(zhuǎn)置數(shù)組是:n”);

    for (i=0;i<N;i++)

    {

    for (j=0;j<N;j++)

    printf(“%5d”,array[i][j]);

    printf(“n”);

    }

    }

    本例題用數(shù)組作為函數(shù)參數(shù),大家要注意數(shù)組作為函數(shù)參數(shù)時(shí)的用法。

    【典型示例】

    【例1】寫兩個(gè)函數(shù),分別求兩個(gè)正數(shù)的最大公約數(shù)和最小公倍數(shù),用主函數(shù)調(diào)用這兩個(gè)函數(shù)并輸出結(jié)果。兩個(gè)正數(shù)由鍵盤輸入。

    源程序如下:

    #include “stdio.h”

    hcf(u,v)

    int u,v;

    {

    int a,b,t,r;

    if(u>v)

    {

    t=u; u=v; v=t;

    }

    a=u; b=v;

    while((r=b%a)!=0)

    {

    b=a; a=r;

    }

    return(a);

    }

    lcd(u,v,h)

    int u,v,h;

    {

    return(u*v/h);

    }

    main()

    {

    int u,v,h,l;

    scanf(“%d,%d”,&u,&v);

    h=hcf(u,v);

    printf(“H.C.F=%dn”,h);

    l=lcd(u,v,h);

    printf(“L.C.D=%dn”,l);

    }

    這是一個(gè)十分典型的算法,同學(xué)們一定要認(rèn)真分析、學(xué)習(xí)。

    【例2】寫一函數(shù),用“起泡法”對(duì)輸入的10個(gè)字符按由小到大順序排序。

    源程序如下:

    /*起泡法排序*/

    #define N 10

    char str[N];

    main()

    {

    int i,flag;

    for (flag=1; flag = =1;)

    {

    printf(“n輸入字符串,長(zhǎng)度為10:n”);

    scanf(“%s”,&str);

    if (strlen(str)>N)

    printf(“超過長(zhǎng)度,請(qǐng)重輸!”);

    else

    flag = 0;

    }

    sort(str);

    printf(“n排序結(jié)果:”):

    for (i=0;i<N;i++)

    printf(“%c”,str[i]);

    }

    sort(str)

    char str[N];

    {

    int i,j;

    char t;

    for (j=1;j<N;j++)

    for (i=0;(i<N-j)&&(str[i]!=’