C语言--冒泡法排序大小值判断异常
//冒泡法排序示例//具体代码如下:
#include<stdio.h>
int main()
{
int n,i,t;
int f[10]={10,9,8,7,6,33,4,3,2,1};
for(i=0;i<10;i++)
printf("%8d",f[i]);
printf("\n");
for(n=0;n<9;n++)
{
for(i=0;i<9-n;i++)
{
if(f[i]>f[i+1]) //执行到此处时,即便10<33,也会执行下面的三条语句?这个是为什么??
t=f[i];
f[i]=f[i+1];
f[i+1]=t;
}
}
for(i=0;i<10;i++)
printf("%8d",f[i]);
printf("\n");
return 0;
}
调试的时候发现,错误出在第13行;当f[i]<f[i+1]、也会继续执行下面的三句--替换语句,导致计算出错。
请大大们帮忙看一下,是什么问题。
感激不尽!