猿问

为什么只循环了一次?

http://img.mukewang.com/597fdc3c0001e3bc36861057.jpg


#include"stdio.h"
#include"string.h"
#include"conio.h"
#include"windows.h"
#define  NUM  8

void invert ( int *,int );  //函数说明语句
void priout ( int *,int );  //函数说明语句
main()
{
 int a[NUM] = {10,20,30,40,50,60,70,80};

 printf("输出原始数据: \n");

 priout ( a,NUM );
 invert ( a,NUM );

 printf("输出颠倒后的数据: \n");

 priout ( a,NUM );


 return 0;
}

void priout ( int s[],int n )
{
 int i;
 for ( i = 0; i < n; i ++ )
 {
  printf("%4d",s[i]);
 }
 printf("\n");
}


void invert ( int *a,int n )
{
 int i,j,t;

 i = 0;     //i是最前元素的下标
 j = n - 1;    //j是最后元素的下标


 
 while ( i <= j )  //当i大于或等于j时,对调完成
 {
  t = a[i];   //下标为i和j的两个元素中的值对调
  a[i] = a[j];
  a[j] = t;
  a ++;    //i向后移一个位置
  j --;    //j向前移一个位置
 }
 

}

请大神解答!

qq_企鹅_13
浏览 1416回答 0
0回答
随时随地看视频慕课网APP
我要回答