您的位置:

c语言冒泡从大到小,c语言冒泡法5个数从大到小

本文目录一览:

输入10个数,用冒泡排序法按由小到大顺序排序并输出??c语言的

冒泡排序的程序代码如下:

#includestdio.h

int main()

{

int a[10]={0};

int i=0,j=0,t=0;

for(i=0;i10;i++)

{scanf("%d",a[i]);} 

for(i=0;i10;i++)

{for(j=0;j10-i;j++){

if(a[j]a[j+1])

{

t=a[j];

a[j]=a[j+1];

a[j+1]=t;

}}}

for(i=0;i10;i++)

{printf("%d ",a[i]);}

return 0;}

任意输入十个数据,程序运行结果:

扩展资料:

冒泡排序算法的原理如下:

1、比较相邻的元素。如果第一个比第二个大,就交换他们两个。

2、对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。

3、针对所有的元素重复以上的步骤,除了最后一个。

4、持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

C语言,5个数按从大到小排序,冒泡法

#includestdio.h

#define N 5

void main()

{   int a[N],i,j,t;

printf("请输入5位学生的成绩\n");

for(i=0;iN;i++)

scanf("%d",a[i]);

for(i=0;iN-1;i++)

{for(j=0;jN-1-i;j++)

if(a[j+1]=a[j]){

t=a[j];a[j]=a[j+1];a[j+1]=t;

}

}

printf("成绩由高到低的排序为:\n"); 

for(i=0;iN;i++)

printf("%d ",a[i]);

}

算法稳定性

冒泡排序就是把小的元素往前调或者把大的元素往后调。比较是相邻的两个元素比较,交换也发生在这两个元素之间。所以,如果两个元素相等,是不会再交换的;如果两个相等的元素没有相邻,那么即使通过前面的两两交换把两个相邻起来,这时候也不会交换,所以相同元素的前后顺序并没有改变,所以冒泡排序是一种稳定排序算法。

以上内容参考:百度百科-冒泡排序

C语言,冒泡排序法从大到小

#includestdio.h

#includestdlib.h

#includetime.h

void main()

{

int flag,temp,i,j,a[20];

srand((unsigned)time(NULL));

printf("before sorting...\n");

for(i=0;i20;i++)

a[i]=rand()%1000;

for(i=0;i20;i++)

printf("%4d",a[i]);

for(i=0;i20;i++)

{

flag=0;

for(j=0;j20-i-1;j++)

{

if(a[j]a[j+1]) //数组越界了,帮你改了一下

{

temp=a[j],a[j]=a[j+1];a[j+1]=temp;

flag=1;}

}

if(flag==0)

break;

}

printf("after sorting...\n");

for(i=0;i20;i++)

printf("%4d",a[i]);

}

C语言,至少输入8个数,从大到小进行冒泡排序?

这个程序写的不好。题目规定的要输入八个数,但是程序中开设的数组是字符数组,而不是整数数组。这样的话,如果输入一个两位数或者三位数,就不能存放了,而且如果输入中包含空格的话,也会存入到字符数组中。另外,冒泡排序中的循环控制条件写的也不对。所以这个程序必须要重新写。

C语言:写一函数,用“冒泡法”对输入的10个字符按由小到大顺序排列

1、打开Visual stdio 2019软件新建空白c文件,在源文件处右击鼠标,选择添加下面的新建项,此时会弹出窗口:

2、弹出的窗口选择C++文件,将文件扩展名改为“.c”点击添加完成新建c文件,之后就可以编写程序了:

3、接下来就可以编写程序了,首先最前面的部分为输入数字的部分,之后的程序会对用户输入的数字就行排序,最后则是将结果打印出来。冒泡排序需要用到两层循环,第一层循环遍历数组中的元素,第二层则进行两两比较,如果顺序不对就要对其进行换位,直到排序完成:

4、最后执行程序观察结果,按下crtl+F5弹出程序,随意输入10个数,按下回车键执行结果,此时就可以看到排序后的结果了。以上就是c语言冒泡排序程序的演示: