百度
360搜索
搜狗搜索

c语言冒泡排序10个数,C语言:采用冒泡排序方法,对10个数按由小到大的的顺序排序详细介绍

本文目录一览: c语言编程:对10个数冒泡排序(升序)。

代码示例如下,以数组a为例:
#include

#define SIZE 10

int main()

{

int a[SIZE]={12 ,43,9,13,67,98,101,89,3,35};

int i,j,t;

for(i=0;i<9;i++)

{

for(j=0;j<9-i;j++)

{

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

{

t=a[j+1];

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

a[j]=t;

}

}

}

for(i=0;i<10;i++)

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

return 0;

}

拓展资料

冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。

它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。

这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端,故名“冒泡排序”。

C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。

二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制定了一套完整的美国国家标准语法,称为ANSI C,作为C语言最初的标准。 目前2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语言的第三个官方标准,也是C语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉字编程。

C语言是一门面向过程的计算机编程语言,与C++,Java等面向对象的编程语言有所不同。

其编译器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。

冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。

冒泡排序流程:它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。

参考代码:

#include

int main(){ int a[10],i,j,t; for(i=0;i<10;i++); scanf("%d",&a[i]); for(j=0;j<9;j++) for(i=0;i<=8-j;i++) if(a[i]>a[i+1]) { t=a[i]; a[i]=a[i+1]; a[i+1]=t; } for(i=0;i<10;i++) printf("%d ",a[i]); return 0;}/*运行结果:2 3 5 4 1 9 8 7 6 00 1 2 3 4 5 6 7 8 9*/

//以下以四个数字的给举例,便于理解;#include

main(){ int i; //定义i变量,i代表外层for循环--比较轮数; int k; //定义k变量,k代表内层for循环--比较次数; int t; //定义t变量,t代表临时变量,临时存放比较的结果中较大的数字,通过赋值的方式切换数字的排序; int a[] = {30,3,6,10}; //定义数组,数组是本次要排序的数字组合;注意此处数组中一共4个数字所以 理论上是 a[4]={30,3,6,10}; //初试化i=1;并判断i是否小于等于3; 如果符合条件 那么进入for循环;(4个数字,两两对比需要进行3轮对比,i就代表了轮数;i需要经过 1,2,3 三轮的赋值;i=4的时候会跳出for循环) for(i=1; i<=3; i++){ //初试化k=0;并判断k是否小于等于3 -i; 如果符合条件 那么进入for循环;第一轮的时候数组一共4个数字所以需要对比3次;第二轮还有3个数字需要对比2次;第三轮仅剩2个数字需要对比1次;(特:当k=0的时候是第一次对比;k从0开始赋值是为了在for循环内当数组的键值使用;) for(k=0; k<=3-i; k++){ //判断a[K] 的数字 是否 大于 a[K + 1 ] 的数字;假设当前是第一轮第一次对比那么a[K=0] = 30,a[K=0 + 1] = 3; if(a[k] > a[k+1]){ t = a[k]; //对上一步判断结果进行进一步处理,因为a[K] > a[K + 1 ] , 所以把a[K] 赋值给临时变量以便于 后续把这个大的数字向后平移; a[k] = a[k+1]; //a[K + 1 ]是比较结果中比较小的数字,所以需要向前靠,向前靠就是要赋值给 a[K];空出 a[K + 1 ]便于下一步接收 较大的数字 a[K]; a[k+1] = t; //a[K + 1 ] 接收 较大的数字 a[K]; } } } for(i=0; i<4; i++){//初试化i=0;并判断i是否小于4; 如果符合条件 那么进入for循环,i在for内做键值使用: printf("第 %d个数字为:%d\n",i+1,a[i]); }}/* 运行结果如下:第 1个数字为:3第 2个数字为:6第 3个数字为:10第 4个数字为:30*/

//冒泡排序,假设有n个数,需要n-1趟排序

//其中,第i趟需要 n-i次排序

#include

int main(void)

{

int a[5]={5,7,9,8,1};

int i,j,w;

printf("输入5个数:%d\n",a[5]);

/*for(i=0;i<5;i++)

{

scanf("%d",&a[i]);//扫描输入5个数

}*/

//使用2层循环

for(i=1;i<=5-1;i++) //趟

{

for(j=0;j<5-i;j++) //第i趟

{

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

{//从大到小排序

w=a[j];

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

a[j+1]=w;

}

}

}

for(i=0;i<5;i++)

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

return 0;

}

我跟楼上不同,没用到指针,应该能更容易理解!如果还有问题可以追问…

具体如下:

#include

void main()

{

int a[11],i,j,t;

printf("请输入10个数:\n");

for(i=1;i<11;i++);

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

for(j=1;j<=9;j++)

/*控制9轮排序 */

for(i=1;i<=10-j;i++)

/*每轮排序比较次数*/

if(a[i]>a[i+1])

{

t=a[i];

a[i]=a[i+1];

a[i+1]=t;

}

for(i=1;i<=10;i++)

printf("%d\t",a[i];

}

用手机打的,结构不是很美观。望见谅!

#include

int main(){

int number[10] = {95, 45, 15, 78, 84, 51, 24, 12,34,23};

for (int j = 0; j < 9; j++)

for (int i = 0; i < 9 - j; i++) {

if(a[i] > a[i + 1]) {

int temp = a[i];a[i] = a[i + 1];

a[i + 1] = temp; }

}

for (int i = 0; i < 10; i++) {

printf(“%d”,a[i]); }

}

扩展资料:

常见排序算法

快速排序、希尔排序、堆排序、直接选择排序不是稳定的排序算法,而基数排序、冒泡排序、直接插入排序、折半插入排序、归并排序是稳定的排序算法。

插入排序

已知一组升序排列数据a[1]、a[2]、……a[n],一组无序数据b[1]、b[2]、……b[m],需将二者合并成一个升序数列。

首先比较b[1]与a[1]的值,若b[1]大于a[1],则跳过,比较b[1]与a[2]的值,若b[1]仍然大于a[2],则继续跳过,直到b[1]小于a数组中某一数据a[x],则将a[x]~a[n]分别向后移动一位,将b[1]插入到原来a[x]的位置这就完成了b[1]的插入。

b[2]~b[m]用相同方法插入。

快速排序

快速排序是大家已知的常用排序算法中最快的排序方法。已知一组无序数据a[1]、a[2]、……a[n],需将其按升序排列。首先任取数据a[x]作为基准。

比较a[x]与其它数据并排序,使a[x]排在数据的第k位,并且使a[1]~a[k-1]中的每一个数据

a[x],然后采用分治的策略分别对a[1]~a[k-1]和a[k+1]~a[n]两组数据进行快速排序。

希尔排序

已知一组无序数据a[1]、a[2]、……a[n],需将其按升序排列。

首先取一增量d(d
<n),将a[1]、a[1+d]、a[1+2d]……列为第一组,a[2]、a[2+d]、a[2+2d]……列为第二组……,a[d]、a[2d]、a[3d]……列为最后一组以次类推,在各组内用插入排序,然后取d'<d,重复上述操作,直到d=1。
参考资料:排序-百度百科
</n),将a[1]、a[1+d]、a[1+2d]……列为第一组,a[2]、a[2+d]、a[2+2d]……列为第二组……,a[d]、a[2d]、a[3d]……列为最后一组以次类推,在各组内用插入排序,然后取d'<d,重复上述操作,直到d=1。

阅读更多 >>>  二维数组定义格式,二维数组变量定义

C语言:采用冒泡排序方法,对10个数按由小到大的的顺序排序

代码如下(对10个整数进行升序排序):
#include

int main()

{

int i,j,t,a[10]={5,4,8,3,6,9,7,222,64,88};

//排序

for(i=1;i<10;i++)//外循环控制排序趟数,n个数排n-1趟

{

for(j=0;j<10-1;j++)//内循环每趟比较的次数,第j趟比较n-i次

{

if(a[j]>a[j+1])//相邻元素比较,逆序则交换

{

t=a[j];

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

a[j+1]=t;

}

}

}

printf("排序后的结果是:\n");

for(i=0;i<10;i++)

{

printf("%d",a
);
}
printf("\n");
return 0;
}
冒泡法:
算法分析:如果有n个数,则要进行n-1趟比较。在第1趟比较中要进行n-1次相邻元素的两两比较,在第j趟比较中要进行n-j次两两比较。比较的顺序从前往后,经过一趟比较后,将最值沉底(换到最后一个元素位置),最大值沉底为升序,最小值沉底为降序。
扩展资料:include用法:
#include命令预处理命令的一种,预处理命令可以将别的源代码内容插入到所指定的位置;可以标识出只有在特定条件下才会被编译的某一段程序代码;可以定义类似标识符功能的宏,在编译时,预处理器会用别的文本取代该宏。
插入头文件的内容
#include命令告诉预处理器将指定头文件的内容插入到预处理器命令的相应位置。有两种方式可以指定插入头文件:
1、#include

2、#include"文件名"

如果需要包含标准库头文件或者实现版本所提供的头文件,应该使用第一种格式。如下例所示:

#include

//一些数学函数的原型,以及相关的类型和宏

如果需要包含针对程序所开发的源文件,则应该使用第二种格式。

采用#include命令所插入的文件,通常文件扩展名是.h,文件包括函数原型、宏定义和类型定义。只要使用#include命令,这些定义就可被任何源文件使用。如下例所示:

#include"myproject.h"//用在当前项目中的函数原型、类型定义和宏

你可以在#include命令中使用宏。如果使用宏,该宏的取代结果必须确保生成正确的#include命令。例1展示了这样的#include命令。

【例1】在#include命令中的宏

#ifdef _DEBUG_

#define MY_HEADER"myProject_dbg.h"

#else

#define MY_HEADER"myProject.h"

#endif

#include MY_HEADER

当上述程序代码进入预处理时,如果_DEBUG_宏已被定义,那么预处理器会插入myProject_dbg.h的内容;如果还没定义,则插入myProject.h的内容。

用C语言编程:用“冒泡法”对输入的10个字符按由小到大的顺序排列。

#include "stdio.h"
#include "stdlib.h"
void Bubble(float a[]){
int i,j;
float temp;
for(i=0;i<9;i++)
for(j=0;j<9-i;j++)
{
if(a[j]>a[j+1])
{temp = a[j]; a[j] = a[j+1]; a[j+1] = temp;}
}
}
main()
{
float B[10],average=0,sum=0;
int i,j=0;
for(i=0;i<10;i++)
scanf("%f",&B[i]);
for(i=0;i<10;i++)
sum+=B[i];
average = sum/10.0;
printf("average = %.2f\n",average);
Bubble(B);
for(i=9;i>=0;i--)
{
printf("%.2f\t",B[i]);
++j;
if(j==5)
printf("\n");
}
system("pause");
}
多送你个求平均数
这是我们期末考试的题目
冒泡法就是将最大的数找到排到后面去
课本上有啊!看书去吧!
1、打开Visual stdio 2019软件新建空白c文件,在源文件处右击鼠标,选择添加下面的新建项,此时会弹出窗口:
2、弹出的窗口选择C++文件,将文件扩展名改为“.c”点击添加完成新建c文件,之后就可以编写程序了:
3、接下来就可以编写程序了,首先最前面的部分为输入数字的部分,之后的程序会对用户输入的数字就行排序,最后则是将结果打印出来。冒泡排序需要用到两层循环,第一层循环遍历数组中的元素,第二层则进行两两比较,如果顺序不对就要对其进行换位,直到排序完成:
4、最后执行程序观察结果,按下crtl+F5弹出程序,随意输入10个数,按下回车键执行结果,此时就可以看到排序后的结果了。以上就是c语言冒泡排序程序的演示:

采用冒泡排序方法,对10个数按由小到大的顺序排列的c语言程序

#include

int main(){ int a[10];//用来存数据 int i,j,temp; for(i = 0; i < 10; i ++)//输入10个数。 scanf("%d",&a[i]); for (j = 0; j < 9; j++)//标准冒泡法排序 for (i = 0; i < 9- j; i++) { if(a[i] > a[i + 1]) { temp = a[i]; a[i] = a[i + 1]; a[i + 1] = temp; } } for(i = 0; i < 10; i ++)//输出。 printf("%d ",a[i]); printf("\n"); return 0;}

C语言从键盘输入10个数,使用冒泡法对这10个数进行排序。要求使用指针实现。

#include<stdio.h>
voidBubbleSort(inta[],intn)

int i,j,temp,flag=1;
for(i=0;i<n-1&&flag;i++)//比较的趟数

flag=0;//未进行比较,将flag置0
for(j=0;j<n-1-i;j++)//每趟比较的次数
if(a[j]>a[j+1])//由小到大排序

temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
flag=1;//若进行了比较,则将flag置1



void main()

int a[10],i;
printf("pleaseinput10numbers:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
printf("Thearrayis:\n");
for(i=0;i<10;i++)
printf("%-4d",a[i]);
BubbleSort(a,10);
printf("\nAftersortthearrayis:\n");
for(i=0;i<10;i++)
printf("%-4d",a[i]);
printf("\n");

运行效果:
扩展资料:main()函数用法:
1、大多数UNIX系统对main函数提供了三个参数,原型如下:
intmain(intargc,char*argv[],char*env[]);其中第三个参数是环境表地址。ANSIC规定main函数只有两个参数,而且第三个参数与全局变量environ相比也没有带来更多益处,所以POSIX.1也规定应使用environ而不使用第三个参数。
2、通常用getenv和putenv函数来存取特定的环境变量,而不是用environ变量。
main函数的原型多是下面这种形式:
intmain(intargc,char*argv[]),参数argc代表了输入参数的个数,char*argv[]表示传入的参数的字符串,是一个字符串数组。
例如在linux平台下编写一个小程序:
int main(intargc,char*argv[])

int i;
printf("argc:%d\n",argc);
for(i=0;i<argc;i++)

printf("argv[%d]:%s\n",i,argv[i]);

exit(0);

3、用gcc编译后形成一个a.out的可执行的文件,运行a.out,其结果是:
argc=1,argv[0]=”a.out”
运行的程序的文件名,也占用一个参数位置,也就是说argv数组中的第一个单元指向的字符串总是可执行程序的名字,以后的单元指向的字符串依次是程序调用时的参数。这个赋值过程是操作系统完成的,只需要拿来用就可以了。
4、在命令行参数的提交中,系统会自动给指针数组后加上一个NULL,所以for(i=0;i<argc;i++)这句也可以换成while(*argv!=NULL)int main(intargc)省略其它参数的定义也是可以的,这样运行时候argc就直接返回参数个数,而不返回其它。运行命令行参数带有char*argv[]的时候,如果输入参数带有空格,应该用双引号括起来。

用冒泡排序法对十个数进行排序 C语言

void maopao(int a[])//输入你的10个数{for(int i=0;i<10;i++){int sym=0;for(int j=0;j<10-i;j++){if(a[i]
<a[j]){int b="a[i];a[i]=a[j];a[j]=b;sym=1;}}if(sym==0)break;}}void" mian(){int a[10]="{3,2,1,4,5,3,6,7,8,8};maopao(a);for(int" i="0;i<10;i++){printf("%d",a[i]);}}

c语言中用冒泡排序法排列任意输入的10个数,用程序输出从小到大的排列具体过程,谢谢。。

#include

int main()

{

int a[10],i,j,t;

printf("请输入10个数\n");

for(i=0;i<10;i++)

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

printf("\n");

for(i=0;i<9;i++)

for(j=0;j<9-i;j++)

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

{

t=a[j];

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

a[j+1]=t;

}

for(i=0;i<10;i++)

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

return 0;

}

C语言用冒泡法对一维数组中10个数按降序进行排列

int a[10];/* 存储用于排序的10个数 */int i;int temp;int label;do{ label=0; for(i=0;i<9;i++) { if (a[i]
<a[i+1]) { label++; temp="a[i+1];" a[i+1]="a[i];" a[i]="temp;" } }while(label!="0);
#include

阅读更多 >>>  c语言编程题及答案,高分急求C语言编程题的答案!!!!!!!

int main(){ int n[]={1,2,3,4,5,6,7,8,9,10}; int i,j,num; for(i=0;i<10;i++) { for(j=i+1;j<10;j++) { if(n[i]
<n[j]) { num="n[i];" n[i]="n[j];" n[j]="num;" } printf("1,2,3,4,5,6,7,8,9,10冒泡降序排列后为:"); for(i="0;i<10;i++)" printf("%d ",n[i]); return 0;}

c语言编写程序,对产生的10个随机数用冒泡排序法实现由小到大排序。

#include

#include

void main(){int i,j,t,a[10];srand(time(NULL));for(i=0;i<10;i++)a[i]=rand();for(j=0;j<10;j++)for(i=0;i<9-j;i++)if(a[i]>a[i+1]){t=a[i];a[i]=a[i+1];a[i+1]=t;}for(i=0;i<10;i++)printf("%d ",a[i]);}

网站数据信息

"c语言冒泡排序10个数,C语言:采用冒泡排序方法,对10个数按由小到大的的顺序排序"浏览人数已经达到19次,如你需要查询该站的相关权重信息,可以点击进入"Chinaz数据" 查询。更多网站价值评估因素如:c语言冒泡排序10个数,C语言:采用冒泡排序方法,对10个数按由小到大的的顺序排序的访问速度、搜索引擎收录以及索引量、用户体验等。 要评估一个站的价值,最主要还是需要根据您自身的需求,如网站IP、PV、跳出率等!