[英]using array as function parameter
我是c的初學者。 我不知道如何使用數組作為函數參數,參數或如何從函數返回數組。 據我所知,下面的代碼應該可以正常工作。 但我無法解決問題所在。 該功能無法正常工作。
//reversing an array using function
#include<stdio.h>
void rev(int array[],int length)
{
int k,j,temp;
for(k=length-1,j=0;k>=0&&j<length;k--,j++){
temp=array[k];
array[k]=array[j];
array[j]=temp;
}
}
int main()
{
int c,arr[]={1,2,3,4,5,6,7,8,9};
rev(arr,9);
for(c=0;c<9;c++){
printf("%d ",arr[c]);
}
return 0;
}
你只需要直到數組的中間,如果你去更多,你重新反轉數組:
所以這:
for(k=length-1,j=0;k>=0&&j<length;k--,j++){
應該:
for(k=length-1,j=0;k > j;k--,j++){
它看起來像你在兩次反向執行。
也就是說,您可以立即交換開始和結束元素,並在迭代結束時再次交換它們。 即你最終得到相同的數組。
你可以:
數組沒有問題。 你的算法有問題。 //使用函數反轉數組
#include<stdio.h>
void rev(int array[],int length)
{
int k,j,temp;
for(k=length-1,j=0;k>=0 && j<length / 2; k--,j++){
temp=array[k];
array[k]=array[j];
array[j]=temp;
}
}
這個反向數組。 你的算法反轉了兩次。 所以只需添加/ 2 in條件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.