主题:[讨论]C51单片机“冒泡法”排序实例
程序如下
#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++)的判断条件应该也是错的。不知道我分析的对不对,还望各位指教!不胜感激!
#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++)的判断条件应该也是错的。不知道我分析的对不对,还望各位指教!不胜感激!