在四個子函數(shù)中有,各是各的,互不干涉,所以main()中的這四個數(shù)組始終沒有被賦值過,空指針指的就是這個 應該把這四個數(shù)組的首地址作為四個read()的參數(shù)傳過去,就可以實現(xiàn):“在子函數(shù)中賦值,在main函數(shù)中使用
公司主營業(yè)務:成都網(wǎng)站設計、網(wǎng)站制作、移動網(wǎng)站開發(fā)等業(yè)務。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)推出焉耆免費做網(wǎng)站回饋大家。
#includestdio.h
#includestdlib.h
int assignment(int *,int);
void print(int *,int);
void main()
{
int sz,rt;
int *p; //定義一個指針,在子函數(shù)里再動態(tài)分配內(nèi)存
printf("輸入data的數(shù)據(jù)元素個數(shù):");
scanf("%d",sz);
rt=assignment(p,sz); //調(diào)用賦值函數(shù)
printf("數(shù)組最后元素為:%d\n",rt);
}
int assignment(int data[],int size) //按 Fibonacci 數(shù)列對數(shù)組元素依次賦值
{
int res;
data=(int *)malloc(size*sizeof(int));
if(size==1)
data[0]=1;
else if(size==2)
{
data[0]=1;
data[1]=1;
}
else
{
data[0]=1;
data[1]=1;
for(int i=2;isize;i++)
data[i]=data[i-1]+data[i-2];
}
print(data,size); //調(diào)用打印函數(shù)
res=data[size-1]; //最后一個元素是data[size-1]
free(data); //釋放內(nèi)存
return res;
}
void print(int data[],int size) //打印數(shù)組
{
for(int i=0;isize;i++)
printf("%d ",data[i]);
}
有注釋的,不明白的再討論
賦值的語法規(guī)則就是:
數(shù)據(jù)類型 變量名 = 表達式
表達式可以理解為一個值或一個計算公式就行,表達式加一個英文符號分號就是語句。
例如:
我們今天要用到的,我買了幾斤蘋果。
就可以這樣寫:
方式一:
Int apple_count = 0; //告訴計算機apple_count是用來存買蘋果的斤數(shù)的,默認為0;
方式二:
Int apple_count; //告訴計算機apple_count是用來存買蘋果的斤數(shù)的,以后再告訴計算機它等于多少,現(xiàn)在不知道;
擴展資料
1、C語言中,賦值運算的操作是有方向的,即將右側(cè)表達式的值(也稱為右值)賦值左側(cè)的變量,只能是標識一個特定存儲單元的變量名。
2、由于變量名只能出現(xiàn)在賦值運算符的左邊,因此它也被稱為左值;由于常量只能出現(xiàn)在賦值運算符的右邊,因此它也被稱為右值。左值可以用作右值,但右值不能用作左值。
n = scanf("%d",n);
這一句有問題
1. scanf 函數(shù)是有返回值的,它的返回值可以分成三種情況
1) 正整數(shù),表示正確輸入?yún)?shù)的個數(shù)。
例如執(zhí)行 scanf(“%d %d”, a, b);
如果用戶輸入”3 4”,可以正確輸入,返回2(正確輸入了兩個變量);
如果用戶輸入”3,4”,可以正確輸入a,無法輸入b,返回1(正確輸入了一個變量)。
2) 0,表示用戶的輸入不匹配,無法正確輸入任何值。如上例,用戶如果輸入”,3 4”,返回0。
3) EOF,這是在 stdio.h 里面定義的常量(通常值為-1),表示輸入流已經(jīng)結束。在Windows下,用戶按下CTRL+Z(會看到一個^Z字符)再按下回車(可能需要重復2次),就表示輸入結束;Linux/Unix下使用CTRL+D表示輸入結束。
你這個輸入一個返回值就是1,因此n也會一直等于一