首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

数组“冒泡排序”,求教各位,该如何解决

2012-04-13 
数组“冒泡排序”,求教各位编译器没有报错,到输出结果是错的,请求指教,谢谢!#includestdio.hvoid sort(int

数组“冒泡排序”,求教各位
编译器没有报错,到输出结果是错的,请求指教,谢谢!

#include<stdio.h>

void sort(int a[],int n)
{
int i,j,k,t;
for(i=0;i<n-1;i++)
for(j=1+i;j<n-i;j++)
  if(a[j]<a[j+1])
  {
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}

int main()
{
int a[5],i;
printf("请输入5个数:\n");
for(i=0;i<5;i++)
{
scanf("%d",&a[i]);
}
sort(a,5);
for(i=0;i<5;i++)
printf("%d ",a[i]);
printf("\n");
}

[解决办法]

C/C++ code
#include<stdio.h>void sort(int a[],int n){    int i,j,k,t;    for(i=0;i<n;i++)        for(j=0; j < n- i;j++)   // j 要从 0 开始            if(j + 1 < n && a[j] < a[j+1])  // 当i = 0 时 a[j+1]数组溢出了            {                t=a[j];                a[j]=a[j+1];                a[j+1]=t;             }}int main(){    int a[5],i;    printf("请输入5个数:\n");    for(i=0;i<5;i++)    {        scanf("%d",&a[i]);    }    sort(a,5);    for(i=0;i<5;i++)        printf("%d ",a[i]);    printf("\n");}
[解决办法]
C/C++ code
#include<stdio.h>void sort(int a[],int n){    int i,j,temp;    for(i=0;i<n-1;++i)        for(j=0;j<n-i-1;++j)           if(a[j]<a[j+1])           {               temp=a[j];               a[j]=a[j+1];               a[j+1]=temp;               };}void main(){    int a[5],i;    printf("请输入5个数:\n");    for(i=0;i<5;i++)    {        scanf("%d",&a[i]);    }    sort(a,5);     for(i=0;i<5;i++)        printf("%d ",a[i]);    printf("\n");}
[解决办法]
探讨

C/C++ code

#include<stdio.h>

void sort(int a[],int n)
{
int i,j,k,t;
for(i=0;i<n;i++)
for(j=0; j < n- i;j++) // j 要从 0 开始
if(j + 1 < n &amp;&amp; a[j] < a[j+1]) // 当……

热点排行