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