我写的c语言冒泡法排序总是不对,求高手指点!!

来源:百度知道 编辑:UC知道 时间:2024/09/21 23:15:03
以下是我写的c语言冒泡法排序,运行时输入10个数字后总是不能正确排序!!!!

#include<stdio.h>
void main()
{
int n[10],i,j,zan;
printf("Please input 10 numbers:\n");
for(i=1;i<=10;i++)
scanf ("%d",&n[i]);
for(i=1;i<=10;i++)
{
for(j=1;j<=10-i;j++)
{
if (n[i]>n[i+1])
{
zan=n[i];
n[i]=n[i+1];
n[i+1]=zan;
}
}
}

for(i=1;i<11;i++)
printf("%d,",n[i] );
printf("\n");

}

我已经找了好长时间的错了,就是找不出错在哪!

for(i=1;i<11;i++)
printf("%d,",n[i] );

改成

for(i=0;i<1;i++)
printf("%d,",n[i] );

C的下标从0开始的

#include<stdio.h>
#include<stdlib.h>

int main()
{
int n[10],i,j,zan;
printf("Please input 10 numbers:\n");
for(i=0;i<10;i++) //这儿从0开始比较好;呵呵
scanf ("%d",&n[i]);
for(i=0;i<9;i++)
{
for(j=0;j<9-i;j++)
{
if (n[j]>n[j+1])
{
zan=n[j]; //你的用n[i]错了,应该是n[j];
n[j]=n[j+1];
n[j+1]=zan;
}
}
}

for(i=0;i<10;i++)
printf("%d,",n[i] );
printf("\n");
system("pause");

}

#include<stdio.h>
void main()
{
int n[10],i,j,zan;
printf("Please input 10 numbers:\n");
for(i=0;i<10;i++) //数组下标从0开始算,0-9为下标
scanf ("%d",&n[i]);