程序如下
#include<reg51.h>
#include<stdio.h>
void main()
{
    unsigned char xdata a[ ]=
        {0x3f,0x44,0x32,0x54,0x66,0x56,0x99,0x88,0x77,0x11,0x34};
    unsigned char i,j,t;
    printf("the unsorted numbers:\n");
    for(i=0;i<9;i++)
      printf("%bx",a[i]);
      printf("\n");
    for(j=0;j<=8;j++)
      for(i=0;i<=9-j;i++)
      if(a[i]>a[i+1])
         {
            t=a[i];
            a[i]=a[i+1];
            a[i+1]=t;
         }
            printf("the sorted number:\n");
       for(i=0;i<=10;i++)
       printf("%bx",a[i]);
}
我对上述程序for(i=0;i<9;i++)中的循环判断条件i<9有疑问,数组给出的书明明是11个,判断条件应该是i<10才对啊?我说的正确的话,接下来的for(j=0;j<=8;j++)的判断条件应该也是错的。不知道我分析的对不对,还望各位指教!不胜感激!