❶ 给定一个整数序列,采用冒泡排序实现从大到小排列,并输出
我这里有一份C语言的代码,我自己在VS2010测试过没有问题的。
#include<stdio.h>
#include<stdlib.h>
voidbubble_sort(inta[],intn);
voidbubble_sort(inta[],intn)//n为数组a的元素个数
{
inti,j,temp;
for(j=0;j<n-1;j++)
for(i=0;i<n-1-j;i++)
{
if(a[i]>a[i+1])//数组元素大小按升序排列
{
temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;
}
}
}
voidoutput(inta[],intn)
{
inti;
for(i=0;i<n;i++)
{
printf("%d",a[i]);
}
}
intmain()
{
intnumber[8]={95,45,15,78,84,51,24,12};
intsize=sizeof(number)/sizeof(int);
bubble_sort(number,size);
output(number,size);
printf(" ");
system("pause");
return0;
}
bubble_sort是冒泡排序算法,output是输出,再main里面有一组测试number
❷ 冒泡排序(从大到小)
#include<stdio.h>
void main()
{
int a[5],i,j,min=0;
for(i=0;i<5;i++)
scanf("%d",&a[i]);
for(j=0;j<4;j++)
for(i=0;i<4-j;i++)
if(a[i]>a[i+1])
{
min=a[i];
a[i]=a[i+1];
a[i+1]=min;
}
for(i=4;i>=0;i++)
{
printf("%2d",a[i]);
if(i==0) printf("\n");
}
}
❸ C语言,5个数按从大到小排序,冒泡法
正确的程序代码如下:
#include<stdio.h>
#defineN5
voidmain()
{ inta[N],i,j,t;
printf("请输入5位学生的成绩 ");
for(i=0;i<N;i++)
scanf("%d",&a[i]);
for(i=0;i<N-1;i++)
{for(j=0;j<N-1-i;j++)
if(a[j+1]<=a[j]){
t=a[j];a[j]=a[j+1];a[j+1]=t;
}
}
printf("成绩由高到低的排序为: ");
for(i=0;i<N;i++)
printf("%d",a[i]);
}
修改两个地方,一是{从if的前面移动到后面,而是判断的内容j和j+1交换。
❹ c语言编程题:分别用冒泡法和选择法对输入的10个整数由大到小排序
#include <stdio.h>
void maopao(int *a){
int temp=0;
for(int i=0;i<10-1;++i)//只需要冒泡9个数最后一个就已经有序了
for(int j=0;j<10-i-1;++j)//j的取值需<10-i-1;为何-1,
if(a[j]<a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
void xuanze(int *a){
for(int i=0;i<9;i++)
{
int temp=i,b;
for(int j=i+1;j<10;j++)
{
if(a[temp]<a[j])
temp=j;
}
if(i!=temp)
{
b=a[temp];
a[temp]=a[i];
a[i]=b;}
}
}
int main()
{
int a[10]={7,8,5,4,3,2,6,9,0,1};
int b[10]={1,2,5,7,43,23,565,6,9,10};
maopao(a);
for(int n=0;n<10;++n)
printf("%d ",a[n]);
printf(" ");
xuanze(b);
for(int n=0;n<10;++n)
printf("%d ",b[n]);
}
(4)编写冒泡排序算法从大到小扩展阅读:
需要说明的是:
1、一个C语言源程序可以由一个或多个源文件组成。
2、每个源文件可由一个或多个函数组成。
3、一个源程序不论由多少个文件组成,都有一个且只能有一个main函数,即主函数。是整个程序的入口。
4、源程序中可以有预处理命令(包括include 命令,ifdef、ifndef命令、define命令),预处理命令通常应放在源文件或源程序的最前面。
5、每一个说明,每一个语句都必须以分号结尾。但预处理命令,函数头和花括号“}”之后不能加分号。结构体、联合体、枚举型的声明的“}”后要加“ ;”。
6、标识符,关键字之间必须至少加一个空格以示间隔。若已有明显的间隔符,也可不再加空格来间隔。
7、自定义函数在使用之前需要进行函数声明。
❺ 输入10个数,用冒泡排序法按由小到大顺序排序并输出c语言的
冒泡排序的程序代码如下:
#include<stdio.h>
int main()
{
int a[10]={0};
int i=0,j=0,t=0;
for(i=0;i<10;i++)
{scanf("%d",&a[i]);}
for(i=0;i<10;i++)
{for(j=0;j<10-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;}
任意输入十个数据,程序运行结果:
(5)编写冒泡排序算法从大到小扩展阅读:
冒泡排序算法的原理如下:
1、比较相邻的元素。如果第一个比第二个大,就交换他们两个。
2、对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
3、针对所有的元素重复以上的步骤,除了最后一个。
4、持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
❻ 任意输入5个整数,利用冒泡排序法排序(从大到小)
#include <stdio.h>
main()
{
int a[6]; /*定义一个整型数组。*/
int i,j,temp; /*定义循环变量和中间变量。*/
for(i=0;i<5;i++) /*进行循环输入变量。*/
{
printf("please enter a number: "); /*输出提示。*/
scanf("%d",&a[i]); /*输入变量赋值给数组变量。*/
}
for(i=0;i<5;i++) /*进行5次循环。*/
{
for(j=i+1;j<5;j++) /*循环比较剩余的变量。*/
{
if(a[i]<a[j]) /*如果前面一个数比后面数小,交换两个数的值。*/
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
for(i=0;i<5;i++) /*循环输出排序以后的结果。*/
{
printf("%d ",a[i]);
}
}
(6)编写冒泡排序算法从大到小扩展阅读
#defineN5
usingnamespacestd;voidbubble(inta[],intn){for(inti=0;i<n;++i)
for(intj=0;j<n;++j){if(a[i]<a[j]){
intt=a[i];a[i]=a[j];
a[j]=t;
}}}
intmain(){intarr[N];
inti=0;while(i!=N){//循环输入//cout<<s<<endl;//调试用
cin>>arr[i];++i;
}bubble(arr,N);
for(i=0;i!=N;++i)cout<<arr[i]<<"";
return0;
}❼ 冒泡排序(从大到小)
#include <stdio.h>
void sort(int a[])
{
int temp;
for(int i=0;i<9;i++)
{
for(int j=0;j<10-i-1;j++)
{
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
printf("排序后的数据\n");
for(i=0;i<10;i++)
{
if(i==5)
{
printf("\n");
}
printf("%d ",a[i]);
}
printf("\n");
}
void main()
{
int a[10];
for(int i=0;i<10;i++)
{
scanf("%d",&a[i]);
}
printf("排序前的数据\n");
for(i=0;i<10;i++)
{
if(i==5)
{
printf("\n");
}
printf("%d ",a[i]);
}
printf("\n");
sort(a);
}