当前位置:首页 » 编程语言 » c语言冒泡排序找最大
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言冒泡排序找最大

发布时间: 2022-04-14 09:37:07

Ⅰ 编写简单的单片机c语言程序 1、指定数组找最大值 2、排序

#include<stdio.h>

#defineNR10//数组元素个数

/*从主函数开始*/

intmain(intargc,char**argv)

{

intar[NR];

inti;

fprintf(stdout,"请输入%d个整数: ",NR);

/*获取并检查用户输入*/

while(1)

{

/*循环获取NR个数据*/

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

{

if(fscanf(stdin,"%d",&ar[i])!=1)

{

fprintf(stdout,"输入错误!请重新输入: ");

while(getchar()!=' ');//丢弃多余非法字符

break;//打破内层for循环

}

}

/*检查是否获取到NR个数据*/

if(i!=NR)

{

continue;

}

else

{

break;

}

}

/*查找最大值和最小值*/

intmax,min;

max=ar[0];//假定第一个数为最大值

min=ar[0];//同时假定也第一个数为最大值

/*从第二个数开始比较查找最值*/

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

{

if(ar[i]>max)//最大值

{

max=ar[i];

}

if(ar[i]<min)//最小值,不能使用elseif,否则会跳过比较

{

min=ar[i];

}

}

fprintf(stdout,"最大值为:%d最小值为:%d ",max,min);

/*接下来:查找第二大值*/

intsecond;

/*先获取前两个数的第一大和第二大值*/

ar[0]>ar[1]?(max=ar[0],second=ar[1]):

(max=ar[1],second=ar[0]);

/*从第2个数开始比较查找*/

for(i=2;i<NR;i++)

{

if(ar[i]>max)//查找最大值:目的是为了比较第二大值

{

second=max;//先把最大值保存给第二大值

max=ar[i];

}

elseif(second<ar[i])//比最大值小的数再看看是否大于第二大值

{

second=ar[i];

}

}

fprintf(stdout,"第二大值为:%d ",second);

return0;

}

(1)c语言冒泡排序找最大扩展阅读

一、c语言程序求数组内所有数的和:

1、通过索引的方式就可以访问到数组内部的元素,索引是从0到数组长度-1。

2、数组点Lenth就是数组的长度。

二、c语言程序冒泡排序:

1、比较相邻的两个元素的大小,如果第一个比第二个大就互换一下。

2、然后每一对都做如上操作,如此一来最后一个元素肯定是最大的数了。

3、除了最后一个元素,重复以上步骤。然后倒数第二个就是次大的值了

4、一次按照这个逻辑直到没有任何数字可以比较了。

Ⅱ c语言冒泡排序从大到小

#include <stdio.h>
void bubble_sort(int a[], int n)
{
int i, j, t;
for (i = 0; i < n - 1; i++)
for (j = 0; j < n - 1 - i; j++)
if(a[j] < a[j + 1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
int main()
{
int number[10] = {95, 45, 15, 78, 84, 51, 24, 12, 38, 97};
int i,SIZE=10;
bubble_sort(number, SIZE);
for (i = 0; i < SIZE; i++)
printf("%d ", number[i]);
printf("\n");
}

Ⅲ C语言冒泡排序法是什么

冒泡排序法,是C语言常用的排序算法之一,意思是对一组数字进行从大到小或者从小到大排序的一种算法。

具体方法是:

相邻数值两两交换。从第一个数值开始,如果相邻两个数的排列顺序与我们的期望不同,则将两个数的位置进行交换(对调);如果其与我们的期望一致,则不用交换。重复这样的过程,一直到最后没有数值需要交换,则排序完成。

C语言常见的排序算法:

1、冒泡排序

基本思想:比较相邻的两个数,如果前者比后者大,则进行交换。每一轮排序结束,选出一个未排序中最大的数放到数组后面。

2、快速排序

基本思想:选取一个基准元素,通常为数组最后一个元素(或者第一个元素)。从前向后遍历数组,当遇到小于基准元素的元素时,把它和左边第一个大于基准元素的元素进行交换。在利用分治策略从已经分好的两组中分别进行以上步骤,直到排序完成。

3、直接插入排序

基本思想:和交换排序不同的是它不用进行交换操作,而是用一个临时变量存储当前值。当前面的元素比后面大时,先把后面的元素存入临时变量,前面元素的值放到后面元素位置,再到最后把其值插入到合适的数组位置。

4、直接选择排序

基本思想:依次选出数组最小的数放到数组的前面。首先从数组的第二个元素开始往后遍历,找出最小的数放到第一个位置。再从剩下数组中找出最小的数放到第二个位置。以此类推,直到数组有序。

以上内容参考 网络-排序算法、网络-c语言冒泡排序


Ⅳ C语言冒泡排序法

#include<stdio.h> //链接标准头文件
#define N 5 //定义常量N并赋值为5
void main() //主函数入口
{ //表示主函数开始
int i,j; //定义整形变量i和j
int grade[N],temp; //定义N维(N=5,也就是五维啦^^)整形数组和整形变量temp
printf("输入5个数\n"); //在屏幕上显式“输入5个数”并且换行
for(i=0;i<N;i++) //开始for循环,从i=0,每次加1,直到i=4,共需循环5次
{ //循环体开始
scanf("%d",&grade[i]); //依次获取用户输入的整数值并存入数组grade中
} //循环结束
for(i=0;i<N;i++) //开始外层for循环,从i=0,每次加1,直到i=4
{ //外层循环体开始
for(j=0;j<N-1-i;j++) //开始外层for循环,从j=0,每次加1直到i等于外层循环的N-j-1
{ //内层循环体开始
if(grade[j]<grade[j+1]) //条件判断
{ //如果整形数组前面的数比其后的小,执行以下语句
temp=grade[j+1]; //将比较大的数赋值给temp
grade[j+1]=grade[j]; //将比较小的数赋值给数组中后面的变量
grade[j]=temp; //将比较大的数赋值给数组中前面的变量
} //从此便完成大小变量的交换,使得大值往前放
} //结束内层循环
} //结外内层循环,完成排序
printf("最后排序为:\n");//在屏幕显式“最后排序为:”并换行
for(i=0;i<N;i++) //同开始的for循环类似
{ //开始循环输出
printf("%d",grade[i]); //只是这里要逐个输出数组中的五个数值
} //结束循环输出
printf("\n"); //输出换行到屏幕,看不到什么效果,可删掉
} //结束main()函数

Ⅳ 求C语言冒泡排序比较3个数的大小

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>

#defineLEN100/*数组长度上限*/

/*升序冒泡排序*/
/*参数说明:*/
/*intarr[]:排序目标数组*/
/*intlen:元素个数*/
voidbubbleSortAsc(intarr[],intlen){
inti,j,temp;
for(i=0;i<len-1;i++)
for(j=0;j<len-1-i;j++){
if(arr[j]>arr[j+1]){
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}

/*打印数组*/
voidprintArr(intarr[],intlen){
inti;
for(i=0;i<len;i++)
printf("%d ",arr[i]);
putchar(' ');
}

intmain(void){
intarr[LEN]={3,5,1};
intlen=3;

puts("初始数组:");
printArr(arr,len);
putchar(' ');

puts("升序排列:");
bubbleSortAsc(arr,len);/*升序冒泡排序*/
printArr(arr,len);
putchar(' ');

getch();/*屏幕暂留*/
free(arr);
return0;
}

运行结果

Ⅵ c语言,输入十个整数,要求用到冒泡算法,输出最大值最小哦值,再去掉最大最小值求平均数

#include"stdio.h"
intmain(intargc,char*argv[]){
intn,s,min,max,t;
printf("Pleaseenter10integers... ");
for(s=n=0;n<10;n++){
scanf("%d",&t);
if(max<t||n==0)
max=t;
if(min>t||n==0)
min=t;
s+=t;
}
printf(" TheMAX=%d TheMIN=%d TheAVE=%g ",max,min,(s-max-min)/8.0);
return0;
}

运行样例:

Ⅶ C语言冒泡排序。

#include<stdio.h>

void main()

{

int a[10];

int i,j,t;

printf("input 10 numbers: ");

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

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

for(j=0;j<9;j++) /*进行9次循环 实现9趟比较*/

for(i=0;i<9-j;i++) /*在每一趟中进行9-j次比较*/

if(a[i]>a[i+1]) /*相邻两个数比较,想降序只要改成a[i]<a[i+1]*/

{

t=a[i];

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

a[i+1]=t;

}

printf("the sorted numbers: ");

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

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


}

(7)c语言冒泡排序找最大扩展阅读:

冒泡排序算法的运作

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

2、对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大(小)的数。

3、针对所有的元素重复以上的步骤,除了最后已经选出的元素(有序)。

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

简单的表示

#include <stdio.h>

void swap(int *i, int *j)

{

int temp = *i;

*i = *j;

*j = temp;

}

int main()

{

int a[10] = {2,1,4,5,6,9,7,8,7,7};

int i,j;

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

{

for (j = 9; j > i; j--)//从后往前冒泡

{

if (a[j] < a[j-1])

{

swap(&a[j], &a[j-1]);

}

}

}

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

{

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

}

return 0;

}

参考资料来源:冒泡排序-网络

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

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

#include&lt;stdio.h&gt;

int main()

{

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

//排序

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

{

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

{

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

{

t=a[j];

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

a[j+1]=t;

}

}

}

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

for(i=0;i&lt;10;i++)

{

printf("%d",a&lt;i&gt;);

}

printf(" ");

return 0;

}

冒泡法:

算法分析:如果有n个数,则要进行n-1趟比较。在第1趟比较中要进行n-1次相邻元素的两两比较,在第j趟比较中要进行n-j次两两比较。比较的顺序从前往后,经过一趟比较后,将最值沉底(换到最后一个元素位置),最大值沉底为升序,最小值沉底为降序。

(8)c语言冒泡排序找最大扩展阅读:

include用法:

#include命令预处理命令的一种,预处理命令可以将别的源代码内容插入到所指定的位置;可以标识出只有在特定条件下才会被编译的某一段程序代码;可以定义类似标识符功能的宏,在编译时,预处理器会用别的文本取代该宏。

插入头文件的内容

#include命令告诉预处理器将指定头文件的内容插入到预处理器命令的相应位置。有两种方式可以指定插入头文件:

1、#include&lt;文件名&gt;

2、#include"文件名"

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

#include&lt;math.h&gt;//一些数学函数的原型,以及相关的类型和宏

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

采用#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的内容。