❶ 給定一個整數序列,採用冒泡排序實現從大到小排列,並輸出
我這里有一份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);
}