求序列的逆序

编写一个子函数G(int *m, int n),要求将指针m指向的长度为n的序列按逆序排列。主函数输入该n个数的序列,n的值可变但不大于10,当输入的数等于1000或者输入的数超过10个时,结束输入。调用子函数调整并在主函数中输出该序列。

#include<stdio.h>
int main()
{
 void G(int *m,int n);
 int i,n,*m,num[10];
 for(i=0;i<10;i++){
  scanf("%d",&num[i]);
  n=i+1;
  if(num[i]==1000)break;
 }
 m=&num[0];
 G(m,n);
 for(i=0;i<n;i++)
  printf("%5d",m[i]);
 printf("\n");
 return 0;
}
void G(int *m,int n)
{
 int i,t,*m1,*m2;
 for(i=0;i<n/2;i++){
  m1=m+i;
  m2=m+(n-1-i);
  t=*m1;*m1=*m2;*m2=t;
 }
}

猜你喜欢

转载自blog.csdn.net/weixin_42324771/article/details/80552514