c语言的冒泡排序

发布网友

我来回答

5个回答

热心网友

你的逻辑结构很混乱,可以说错的很离谱,你好好理解一下冒泡的算法吧
#include<stdio.h>
冒泡的外层循环应该是for(i=1;i<=9;i++)
内层循环是for(j=0;j<10-i-1;j++)
if(a[j]>a[j+1])
再进行交换

热心网友

你的循环部分错了
printf打错了
#include<stdio.h>
void main()
{
int a[10];
int i,j,k;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<9;i++)
for(j=0;j<9-i;j++)
if (a[i]>a[i+1])
{ k=a[i];a[i]=a[i+1];a[i+1]=k;}
for(k=0;k<=9;k++) printf(",%d",a[k]);
}

热心网友

for(j=0;j<10-j;j++)
应该是j < 10 - i吧

热心网友

应该是、
for(j=0;j<10-i;j++)
k=a[i];a[i]=a[j];a[j]=k;

热心网友

#include <iostream>
using namespace std;
int main()
{

int a[11];
int i,j,k;
for(i=0;i<10;i++)
cin>>a[i];

for(i=0;i<10;i++)
for(j=i+1;j<10;j++) //注意这里j=i+1
if(a[i]<a[j])
{
k=a[i];
a[i]=a[j];
a[j]=k;
}

for(k=0;k<10;k++)
cout<<a[k]<<",";

system("pause");

return 0;
}

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com