任意数组气泡排列问题求教!!万分感谢!!!
任意输入一个数组,然后按从小到大的顺序排列的程序,改了几次总是还有问题,麻烦哪位帮帮忙吧,看看哪里错了。
主要问题是应该是中间循环的部分吧?最后输出时总是有一个数输出2次,导致a[1]或者a[10]的值不对。。
万分感谢!!!!
#define PI 10
#include "stdio.h"
main()
{
int a[PI],i,n,transition;
printf("\nPlease input array of %d numbers\n",PI);
for(i=1;i<=PI;i++)
{
printf("a[%d]=",i);
scanf("%d",&a[i]);
}
for(i=1;i<=PI;i++)
for(n=PI;n>1;n--)
if(a[n]<a[n-1])
{transition=a[n];a[n]=a[n-1];a[n-1]=transition;}
printf("the sorted numbers is\n");
for(i=1;i<=PI;i++)
{
printf("a[%d]=%d ",i,a[i]);
if(i%5==0) printf("\n");
}
}
[ 本帖最后由 人莫予毒 于 2010-12-23 20:31 编辑 ]