重慶分公司,新征程啟航
為企業提供網站建設、域名注冊、服務器等服務
為企業提供網站建設、域名注冊、服務器等服務
二維數組無法作為參數直接傳遞給函數,但是可以利用二維數組內部數據的連續性,將二維數組的地址按照一維數組的方式傳遞給函數,并傳入對應的行列數,從而實現函數內打印二維數組的效果。
創新互聯建站專注于港南企業網站建設,成都響應式網站建設,成都做商城網站。港南網站建設公司,為港南等地區提供建站服務。全流程按需網站設計,專業設計,全程項目跟蹤,創新互聯建站專業和態度為您提供的服務
以整型為例,具體方式如下:
void?print_array(int?*a,?int?m,?int?n)//a為一個m行,n列的二維數組的首地址。
{
int?i,?j;
for(i?=?0;?i??m;?i?++)
{
for(j?=?0;?j??n;?j?++)
{
printf("%d,",?a[i*n+j]);//a[i*n+j]也就是原始二維數組第i行第j列的元素。
}
printf("\n");//每行結束輸出換行。
}
}
調用時:
sum=fun1(a[N]);
printf("sum=%d\n",sum);
定義中:
int fun1(int a[N],int i)
{
int s=0;
for(i=0;iN;i++)
s=s+a[i];
return(s);
}
注意定義的函數int fun1(int a[N],int i),在調用函數的時候語法是sum=fun1(int a[N],int i);錯誤在于調用函數時()內的參數應該和定義時一樣
#include
void paixu(int array[],int len)
{
int t,i,j;
for (i=0;ilen-1;i++)
{
for (j=0;jlen-1-i;j++)
if (array[j]array[j+1])
{
t=array[j];
array[j]=array[j+1];
array[j+1]=t;
}
}
}
int main ()
{
int in,i,array[128];
printf("輸入一個正整數:");
scanf("%d",in);
printf("輸入%d個整數:\n",in);
for (i=0;iin;i++)
{
scanf("%d",array[i]);
}
paixu(array,in);
printf("排序后: ");
for (i=0;iin;i++)
{
printf("%d ",array[i]);
}
return 0;
}
#include?"stdio.h"
void?s(int?*a,int?n)//最好指定數組的長度n
{
int?t1,t2,i;
t1=a[n-2];????//末位兩個元素要存回首位兩位,先保存
t2=a[n-1];
for(i=n-1;i1;i--)?//其它位置,循環向后移兩位就行,后8位就確定了
{
a[i]=a[i-2];
}
a[0]=t1;??//末位的兩位存回首位,這樣就全排完了
a[1]=t2;
}
void?main()
{
int?a[10],i;
for(i=0;i10;i++)
scanf("%d",a[i]);
s(a,10);
for(i=0;i10;i++)
printf("%d?",a[i]);
}
方法
有2
將該數組定義為全局變量,即:
int
g_arr;
void
fun()
{...}
void
main()
{...}
2.將該數組作為函數參數傳遞到自定義函數里,即:
void
fun(int
arr[])
{...}
void
main()
{
int
arr[10];
fun(arr);
}