⑴ c語言數組變數作為函數參數
將數組傳遞給函數後,數組就會退化為指針
voidfun(intx,intpp[],int*n)
voidfun(intx,int*pp,int*n)
//這兩種寫法是等價的
pp[j++]=j;//這句寫錯了
//要保存到pp里的是能整除的整數,而不是計數器j,如果這么寫,那麼pp的值肯定是{0,1,2,3,4,5,...}
//應該改成
pp[j++]=l;//L才是被整除的整數,要保存的是這個
*n=j;//n作為一個指針,負責傳出得到的數字的數量,j是計數器,當所有的計算完畢後,j的值自然是這些數字的數量
⑵ C語言 數組作為函數參數
給你一個例子,你參考一下吧:
#include <stdio.h>
#define M 5//行數
#define N 6//列數
void input(int a[M][N])
{
int i,j;
for(i=0;i<M;i++)
for(j=0;j<N;j++)
scanf("%d",&a[i][j]);
}
main()
{
int array[M][N];
input(array);
}
⑶ C語言技巧:怎樣把數組作為參數傳遞給函數
使用pointer(指針)即可.
ex:
voidfunc(int*ptr,intlen);
intarray[10];
test()
{
....
func(&array[0],10);//將第一個指針傳過去,並帶上長度
....
}
⑷ C語言怎麼寫一個返回int、用數組作為參數的函數
很簡單的,數組作為函數參數傳遞的時候只要是數組名就可以了,因為數組名本身就是數組的首地址 .給個程序看看
#include<stdio.h>
#define N 3
int array[N][N];
void main()
{
//在主函數內聲明被調函數
void convert(int array[][3]);
int i,j;
printf("輸入數組:\n");
for(j=0;j<N;j++)
for(i=0;i<N;i++)
scanf("%d",&array[i][j]);
printf("\n");
for(j=0;j<N;j++)
{
for(i=0;i<N;i++)
printf("%d\t",array[i][j]);
printf("\n");
}
//調用矩陣轉置函數
convert(array);
printf("\n");
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
printf("%d\t",array[i][j]);
printf("\n");
}
}
void convert(int array[][3])
{
int i,j,t;
for(i=0;i<N;i++)
for(j=0;j<N;j++)//設置數組中轉置矩陣元素交換
{
t=array[i][j];
array[i][j]=array[j][i];
array[j][i]=t;
}
}
⑸ c語言中,如何定義一個以數組為參數的函數,函數的功能是將數組中的每一個元素從小到大排列
#include<stdio.h>
voidsort(int*begin,int*end)
{
inti,j;
intlength=end-begin;
for(i=0;i<length;i++)
{
for(j=0;j<length-i;j++)
{
if(*(begin+j)>*(begin+j+1))
{
inttemp=*(begin+j);
*(begin+j)=*(begin+j+1);
*(begin+j+1)=temp;
}
}
}
}
intmain()
{
intt;
inta[8]={1,3,2,4,9,3,6,7};
int*p1=a;
int*p2=&a[7];
sort(p1,p2);
for(t=0;t<8;t++)
{
printf("%d",a[t]);
}
return0;
}
⑹ C語言中數組作為函數參數
C中數組名代表該數組的首地址,
char
s[]="abc";
s代表的就是『a』在內存中的地址
以地址作參數
,實參和形參同時改變
⑺ c語言中數組作為函數參數的問題。
E
數組作為參數不需要標示大小
A
數組參數在函數中要被隱式轉換為一個常量指針在使用
F
定義數組值為int
a[i]
這里的i應該是一個編譯時期決定大小常量表達式。
⑻ c語言中數組名作為函數參數
要將數組長度作為一個參數傳給average函數,不能在average函數內部通過int arrLen = sizeof(a) / 4;來計算數組長度。因為float average(float a[10])就相當於float average(float *a) ,所以sizeof(a)恆等於4,sizeof(a) / 4恆等於1。
應該這樣:
float average(float a[10],int arrLen) {
float sumSco = 0;
for (int i = 0; i < arrLen; i++)
{
sumSco += a[i];
}
return sumSco / arrLen;
}
⑼ c語言 數組作為函數參數怎樣寫
囧...
你的數組定義的size是N+1,參數傳進去的size是N。
參數調用方法沒錯,細心,細心啊,老兄...
⑽ c語言數組作為函數參數問題
不是沒傳進所有的數,,是你在循環時少加了一個括弧.加上括弧就好了,
你試試
int Maxdata(int data_max[200],int total_max)
{
int a,b;
for(a=1;a<total_max;a++)
{ b=data_max[0]; //循環開始加括弧
if(b<data_max[a])
b=data_max[a];
} //括弧結束
return b;
}
int Mindata(int data_min[200],int total_min)
{
int c,d;
for(c=1;c<total_min;c++)
{ d=data_min[0]; //括弧開始
if (d>data_min[c])
d=data_min[c];
}//括弧結束
return d;
}
循環語句只能作用第一個分號處,加上括弧,下面括弧內的內容都參加循環