兄弟们!一道关于数值的数制转换有关问题的疑问 多谢大家

兄弟们!一道关于数值的数制转换问题的疑问 谢谢大家
例题     数值的数制转换。将一个十进制数转换为指定数制的值。即输入两个十进制数,第一个是要被转换的数,第二个是转换时所用的数制。数制限定为2-16。


例题中的程序如下


/*   Note:Your   choice   is   C   IDE   */
#include   "stdio.h "
void   display   (char   Data   [],int   count,int   numb,int   base);
void   Backward   (char   Data[],int   count);
int   convert   (char   *pDigitChar,int   mumb,int   mumeric,char   *pData);
main()
{
char   DigitChar   [16]={ '0 ', '1 ', '2 ', '3 ', '4 ', '5 ', '6 ', '7 ', '8 ', '9 ', 'A ', 'B ', 'C ', 'D ', 'E ', 'F '};
int   numb,numeric,count;
char   Data   [50]={ '\0 '};
printf   ( "The   program   convert   a   inteager   with   a   given   base.\n ");
printf   ( "please   input   a   inteager   and   a   base:\n ");
scanf   ( "%d%d ",&numb,&numeric);
count=convert   (DigitChar,numb,numeric,Data);
Backward   (Data,count);
display   (Data,count,numb,numeric);
}
int   convert   (char   *pDigitChar,int   numb,int   numeric,char   *pData)
{
int   cnt=0;
int   rest;
do
{
rest   =numb%numeric;
pData   [cnt]=pDigitChar   [rest];
cnt++;
numb=numb/numeric;
}
while   (numb> 0);
return   cnt;
}
void   Backward   (char   Data   [],int   count)
{
int   k,m;
char   t;
for   (k=0,m=count-1;k <m;k++,m--)
{
t=Data   [k];Data   [k]=Data   [m];Data   [m]=t;
}
}
void   display   (char   Data   [],int   count,int   numb,int   base)
{
int   k;
printf   ( "The   digit   in   %d   base   of   the   number   %d   is: ",base,numb);
for   (k=0;k <count;k++)
printf   ( "%c ",Data   [k]);
printf   ( "\n ");
}


请问在这个函数中

void   Backward   (char   Data   [],int   count)
{
int   k,m;
char   t;
for   (k=0,m=count-1;k <m;k++,m--)
{
t=Data   [k];Data   [k]=Data   [m];Data   [m]=t;
}


他的逻辑似乎表达的是把原数组按逆序数排列,但是。。。不太理解k++和m--的循环条件k <m,     在我的想法是     循环条件是k <m为前提   那末   k在不断的增大     m在不断的减小   总有一个地方k=m吧   那该数组就无法完全都按照逆序排列了   。。。请各位大虾   不吝赐教!谢谢!

------解决方案--------------------
恩,这个函数就是把原数组按逆序数排列.

以数组中间为分界线,k=m时交换完毕了.
------解决方案--------------------
请楼主参考以下程序:
记着看后别忘加分哦!

#include <stdio.h>
main()
{
int i,radix;
long n;
char a[33]; /*存放结果的数组*/
void trans10_2_8_16(char *p,long m,int base); /*转换函数说明*/
printf( "\n input radix(2,8,16:) "); /*输入转换基数*/
scanf( "%d ",&radix);
printf( "\n input a positive integer: "); /*输入被转换数*/
scanf( "%ld ",&n);
trans10_2_8_16(a,n,radix); /*调用转换函数*/
for(i=strlen(a)-1;i> =0;i--) /*逆向输出字符串*/