c语言高手请进:帮忙指出错误,里面的排序不成功,0与2不能交换,为什么?

来源:百度知道 编辑:UC知道 时间:2024/06/11 03:42:43
#include"stdio.h"
void main()
{
int i,j;
int a[]={2,3,5,7,9,8,0};

{

for(i=0;i<7;i++)
printf("%d",a[i]);
printf("\n");
for(i=0;i<6;i++)
for(j=1;j<7-i;j++)
if(a[j]>a[j+1])
{
int tem=a[j+1];
a[j+1]=a[j];
a[j]=tem;
}
else

continue;
}
for(i=0;i<7;i++)
printf("%d",a[i]);
}

看的好晕啊,给你改对了吧,我觉得里面有一些语句太多余……
#include "stdio.h"
int main()
{
int i,j;
int a[]={2,3,5,7,9,8,0};
for(i=0;i<6;i++)
for(j=i+1;j<7;j++) if(a[i]>a[j])
{
int tem=a[j];
a[j]=a[i];
a[i]=tem;
}
/*
or
for(i=1;i<7;i++)
for(j=0;j<i;j++) if(a[j]>a[j+1])
{
int tem=a[j+1];
a[j+1]=a[j];
a[j]=tem;
}
这样的选择、冒泡排序调一下顺序就有好多种……
*/
for(i=0;i<7;i++) printf("%d ",a[i]);
return 0;
}

#include"stdio.h"
void main()
{
int i,j;
int a[]={2,3,5,7,9,8,0};

{

for(i=0;i<7;i++)
printf("%d",a[i]);
printf("\n");
for(i=0;i<6;i++)
for(j=i+1;j<7;j++) /*你的程序这里的循环有点毛病,我已经改过了*/
if(a[i]>a[j])
{
int tem=a[i]; /*这个地方可以这样声明,恭喜你,不要被别人误导。*/
a[i]=a[j];
a[j]=tem;
}
else /*这句可有可无。*/

continue;