c语言数组指针问题

来源:百度知道 编辑:UC知道 时间:2024/06/15 20:05:28
#include<stdio.h>
void main()
{
int i,a[10]={3,7,9,11,0,6,7,5,4,2};
printf("The original array:\n");
for(i=0;i<10;i++)
printf("%d",a[i]);
printf("\n");
inv(a,10);
printf("the array has been inverted:\n");
for(i=0;i<10,i++);
printf("%d",a[i]);
printf("\n");}

void inv(int x[],int n)
{int temp,i,j,m=(n-1)/2;
for(i=0;i<=m;i++)
{j=n-1-i;
temp=x[i];x[i]=x[j];x[j]=temp;}
return;}

可以给我说说什么地方错了吗?

以下是我改后还有附上输出的结果图片,LZ应该是要把a[10]反序输出吧!你算法基本对了,把下面我提到3个小错误改一下就行了!见结果,已经实现了

#include<stdio.h>

void main()

{    

 void inv(int x[],int n);//错1:在mian函数调用inv函数必须声明,除非该函数置于main之前

   

 int i,a[10]={3,7,9,11,0,6,7,5,4,2};

 printf("The original array:\n");

 for(i=0;i<10;i++)

  printf("%d",a[i]);

   printf("\n");

 inv(a,10);

 printf("the array has been inverted:\n");

        //错2:下面这个for语句后面应该不要;(分号),否则变成空循环了,就无法循环输出了,导致只有输出一个10

 for(i=0;i<10;i++)//错3:for循环里面i<10后面,写错了,应该是;(分号)

   printf("%d",a[i]);

 printf("\n");

}

void inv(int x[],int n)

{

 int temp,i,j,m=(n-1)/2;