本文目录一览:
- 1、输入10个数,用冒泡排序法按由小到大顺序排序并输出??c语言的
- 2、C语言,5个数按从大到小排序,冒泡法
- 3、C语言,冒泡排序法从大到小
- 4、C语言,至少输入8个数,从大到小进行冒泡排序?
- 5、C语言:写一函数,用“冒泡法”对输入的10个字符按由小到大顺序排列
输入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语言冒泡排序程序的演示: