給你看一下我的代碼
石河子網站建設公司成都創新互聯公司,石河子網站設計制作,有大型網站制作公司豐富經驗。已為石河子千余家提供企業網站建設服務。企業網站搭建\外貿網站制作要多少錢,請找那個售后服務好的石河子做網站的公司定做!
#includestdio.h
void main(){
int a[10],b[10],i,j,temp;
for(i=0;i10;i++){
printf("請輸入第%d個數:",(i+1));
scanf("%d",a[i]);
//保存數組,因為輸入完數組要冒泡排序,排序后的元素順序可能和原數組不一樣
b[i]=a[i];
}
//冒泡排序,求最大值
for(i=0;i9;i++){
for(j=0;j9-i;j++){
if(a[j]a[j+1]){ //這里控制的升序還是降序,我這是降序
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
//查找最大值在原數組的位置
for(i=0;i10;i++){
if(b[i]==a[0]){ //降序的話最大值是a[0],升序的話最大值是a[9]
break; //一旦找到最大值,馬上跳出循環
}
}
printf("最大值是%d,它在原數組中是第%d個元素!\n",a[0],(i+1));
}
你的程序:
main()
{
int b[3];
b=pop();
}
int * pop()
{
int a[3],i;//定義的局部變量a[3]在調用完之后自動釋放其空間
for(i=0;i3;i++)
a[i]=i;
return a;//返回的是指向數組a[3]的地址而不是數組a[3]本身
}
注:既然上面說到調用的方法返回的是指向數組a[3]的地址,所以主函數中b接收的應該是指向數組a[3]的地址,而數組a[3]在方法調用完后又被釋放了,所以b接收不到數組a[3],故出錯。
正確的程序:
#includestdio.h
main()
{
int b[3];
pop(b,3);
}
void pop(int a[],int n)//該方法傳入兩個參數,第一個是傳入指向數組的地址,第二個參數是傳入數組的長度,不需寫返回語句return,只需通過指向數組的地址的傳入就可以直接將數組b[]的值改變
{
int i;
for(i=0;in;i++)
a[i]=i;
}
//考點是數組作為參數入參,第一個參數為數組指針,第二個參數為數組長度,第三個參數為被成書
void?func(int?a[],?int?size,?int?x){
for(int?i?=?0;?i??size;?i++){
a[i]?*=?x;
printf("%d?",?a[i]);
}
printf("\n");
}
int?main(){
int?a[4],?x;
scanf("%d,%d,%d,%d",?a[0],?a[1],?a[2],?a[3]);
scanf("%d",?x);
func(a,?4,?x);
return?0;
}
文章名稱:c語言數組和函數課件 c語言函數調用例子數組
URL分享:http://m.newbst.com/article20/hjheco.html
成都網站建設公司_創新互聯,為您提供云服務器、關鍵詞優化、搜索引擎優化、做網站、App開發、軟件開發
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯