为什么会没有返回值啊,真的不会了,大一好难

#include <stdio.h>
#include <stdlib.h>
void invert(int a[],int n)
{
int i,j,temp,m=(n-1)/2;
for(i=0;i<=m;i++)
{
j=n-1-j;
temp=a[i];a[i]=a[j];a[j]=temp;
}
}
int main()
{
int a[10]={1,2,3,4,5,6,7,8,9,10},i;
invert(a[10],10);
for(i=0;i<10;i++)
printf("%d",a[i]);
return 0;

}

数组倒置的

img

void invert(int a[],int n)
{
int k,j,temp,m=n/2;
k=0;j=n;
while(k<m)
{
//改了 
temp=a[k];a[k]=a[n-k-1];a[n-k-1]=temp;
k++;
j--;
}
}
int main()
{
int a[10]={1,2,3,4,5,6,7,8,9,10},k;
invert(a,10);//a[10]改成a 
for(k=0;k<10;k++)
printf("%d ",a[k]);
return 0;

}


改成a

img

invert(a,10);

你只是要对数组进行操作,本身就不需要返回某个值的
而且你这个代码有两个错误
一是j=n-1-j;改成j = n -1 - i;
二是invert(a[10],10);改成invert(a,10);

img


#include <stdio.h>
#include <stdlib.h>
void invert(int a[],int n)
{
int k,j,temp,m=(n-1)/2;
for(k=0;k<=m;k++)
{
j=n-1-k;//改了 
temp=a[k];a[k]=a[k];a[k]=temp;
}
}
int main()
{
int a[10]={1,2,3,4,5,6,7,8,9,10},k;
invert(a,10);//a[10]改成a 
for(k=0;k<10;k++)
printf("%d",a[k]);
return 0;

}
invert(a,10)



#include <stdio.h>
#include <stdlib.h>
void invert(int a[], int n)
{
    int i,  temp, m = (n - 1) / 2;
    int j = 0;
    for (i = 0; i <= m; i++)
    {
        j = n - 1 - j;
        temp = a[i]; a[i] = a[j]; a[j] = temp;
    }
}
int main()
{
    int a[] = { 1,2,3,4,5,6,7,8,9,10 }, i;
    invert(a, 10);
    for (i = 0; i<10; i++)
        printf("%d", a[i]);
    system("pause");
    return 0;

}