c语言排序程序

2024-12-19 06:23:15
推荐回答(5个)
回答1:

#include
void main()
{
int a[10];
int i,j,t;
for(i=0;i<=9;i++)
scanf("%d",&a[i]);
for(i=0;i<9;i++)
for(j=i+1;j<10;j++)
{
if(a[i]>a[j])
{ /*交换从这里开始*/
t=a[i];
a[i]=a[j];
a[j]=t;}
} /*交换到这里结束*/
for(i=0;i<=9;i++)
printf("%d ",a[i]);
printf("\n");/*下一次循环时换行*/
}
也没有多大的错误
小心点,C是分语句执行的,到了“;”就是一条语句,除非你用“{}”,这样可以将几个语句合并为一条语句。可以简单这么理解。

回答2:

#include
void main()
{
int a[10];
int i,j,t;
printf("input 10 numbers:\n")
for(i=0;i<=10;i++)
scanf("%d",&a[i]);
for(i=0;i<=8;i++)
for(j=i+1;j<=9;j++) ;
if(a[i]>a[j+1])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
for(i=0;i<=9;i++)
printf("%d ",a[i]);
}

回答3:

if(a[i]>a[j]) //--->没 { 所以只执行t=a[i]; (相对if而言)
t=a[i];
a[i]=a[j]; //执行完if后继续执行(不属于if的范围)
a[j]=t;

回答4:

#include

void
main()
{
int
a[10];
int
i,j,t;
for(i=0;i<=9;i++)
scanf("%d",&a[i]);
for(i=0;i<9;i++)
for(j=i+1;j<10;j++)
{
if(a[i]>a[j])
{
/*交换从这里开始*/
t=a[i];
a[i]=a[j];
a[j]=t;}
}
/*交换到这里结束*/
for(i=0;i<=9;i++)
printf("%d
",a[i]);
printf("\n");/*下一次循环时换行*/
}
也没有多大的错误
小心点,C是分语句执行的,到了“;”就是一条语句,除非你用“{}”,这样可以将几个语句合并为一条语句。可以简单这么理解。

回答5:

if语句后缺少{}

if(a[i]>a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
我有在VC上运行过