- // 數組元素作函數實參
- 在用數組元素作函數實參時,把實參的值傳給形參,是"值傳遞"方式。
- 數據傳遞的方向是 從實參傳到形參,單向傳遞。
- 輸入10個數,要求輸出其中值最大的元素和該數是第幾個數。
- #include "stdafx.h"
- int _tmain(int argc, _TCHAR* argv[])
- {
- int max(int x,int y);
- int a[10],m,n,i;
- printf("enter 10 integer numbers:");
- for(i=0;i<10;i++)
- scanf_s("%d",&a[i]);
- printf("\n");
- for(i=1,m=a[0],n=0;i<10;i++)
- {
- if(max(m,a[i])>m)
- {m=max(m,a[i]);
- n=i;
- }
- }
- printf("The largest number is %d\nit is the %dth number.\n",m,n+1);
- }
- int max(int x,int y)
- {
- return(x>y?x:y);
- }
- // 數組名作函數參數
- 用數組元素作實參時,向形參變量傳遞的是數組元素的值,而用數組名作函數實參時,
- 向形參(數據名或指針變量)傳遞的是數組首元素的地址。
- 有一個一維數組 score,內放10個學生成績,求平均成績。
- #include "stdafx.h"
- int _tmain(int argc, _TCHAR* argv[])
- {
- float average(float array[10]);
- float score[10],aver;
- int i;
- printf("input 10 scores:\n");
- for(i=0;i<10;i++)
- scanf_s("%f",&score[i]);
- printf("\n");
- aver=average(score);
- printf("average score is %5.2f\n",aver);
- return 0;
- }
- float average(float array[10])
- {
- int i;
- float aver,sum=array[0];
- for(i=1;i<10;i++)
- sum=sum+array[i];
- aver=sum/10;
- return(aver);
- }
- 有兩個班級,分別有35名和30名學生,調用一個average函數,分別求着兩個班的學生的平均成績。
- #include "stdafx.h"
- int _tmain(int argc, _TCHAR* argv[])
- {
- float average(float array[ ],int n);
- float scorel[5]={98.5,97,91.5,60,55};
- float score2[10]={67.5,89.5,99,69.5,77,89.5,76.5,54,60,99.5};
- printf("The average of class A is %6.2f\n",average(scorel,5));
- printf("The average of class B is %6.2f\n",average(score2,10));
- return 0;
- }
- float average(float array[ ],int n)
- {
- int i;
- float aver,sum=array[0];
- for(i=1;i<n;i++)
- sum=sum+array[i];
- aver=sum/n;
- return(aver);
- }
- 用選擇法對數組中10個整數按由小到大排序。
- #include "stdafx.h"
- int _tmain(int argc, _TCHAR* argv[])
- {
- void sort(int array[ ],int n);
- int a[10],i;
- printf("enter array:\n");
- for(i=0;i<10;i++)
- scanf_s("%d",&a[i]);
- sort(a,10);
- printf("The sorted array:\n");
- for(i=0;i<10;i++)
- printf("%d ",a[i]);
- printf("\n");
- return 0;
- }
- void sort(int array[ ],int n)
- {
- int i,j,k,t;
- for(i=0;i<n-1;i++)
- {k=i;
- for(j=i+1;j<n;j++)
- if(array[j]<array[k])
- k=j;
- t=array[k];array[k]=array[i];array[i]=t;
- }
- }
- // 多維數組名作函數參數
- 有一個3*4的矩陣,求所有元素中的最大值。
- #include "stdafx.h"
- int _tmain(int argc, _TCHAR* argv[])
- {
- int max_value(int array[][4]);
- int a[3][4]={{1,3,5,7},{2,4,6,8},{15,17,34,12}};
- printf("Max value is %d\n",max_value(a));
- return 0;
- }
- int max_value(int array[][4])
- {
- int i,j,max;
- max=array[0][0];
- for(i=0;i<3;i++)
- for(j=0;j<4;j++)
- if(array[i][j]>max)
- max=array[i][j];
- return(max);
- }
數組作爲函數參數
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.