⑴ c語言冒泡排序,輸入字母或數字比較大小,輸出結果是字母由大到小排在前,數字由小到大排在後
/*
排序前 : 90dhnsuayA34810
降排序後 : yusnhdaA9843100
二次排序後 : yusnhdaA0013489
Press any key to continue
*/
#include <stdio.h>
#include <stdlib.h>
void SortD(char s[]) { // 從大到小排序
int i,j;
char ch;
for(i = 0; s[i + 1]; ++i) {
for(j = i + 1; s[j]; ++j) {
if(s[i] < s[j]) {
ch = s[i];
s[i] = s[j];
s[j] = ch;
}
}
}
}
void SortI(char s[]) { // 從小到大排序
int i,j;
char ch;
for(i = 0; s[i + 1]; ++i) {
for(j = i + 1; s[j]; ++j) {
if(s[i] > s[j]) {
ch = s[i];
s[i] = s[j];
s[j] = ch;
}
}
}
}
int main(){
char s[] = "90dhnsuayA34810";
int i,pos = -1;
printf("排序前 : %s\n",s);
SortD(s);
printf("降排序後 : %s\n",s);
for(i = 0; s[i]; ++i) {
if(s[i] >= '0' && s[i] <= '9') {
pos = i;
break;
}
}
if(pos != -1) {
SortI(&s[pos]);
printf("二次排序後 : %s\n",s);
}
return 0;}
⑵ C語言,用函數對字元數組中存放的若干個字母按從小到大用冒泡法排序
你的字元串輸入有問題,還有冒泡排序的幾行演算法有點問題,磨孝我這個應該可以通過#include<stdio.h>
void
main()
{
char
a[81],temp;
int
i=0,j,k;
scanf("%s",a);
for(j=strlen(a);j>0;j--)
for(k=0;k<瞎襲稿j-1;k++)
if(a[k]>a[k+1])
{
temp=a[k];
a[k]=a[k+1];
a[k+1]=temp;
}
printf("禪缺%s",a);
}
⑶ c語言怎麼做冒泡排序啊
使用冒泡排序法進行編程:
解釋:
1.第一個for循環:利用數組循環輸入4個變數。
2.第二個for循環:該循環的意思是如果a[0]>a[1]的話,兩個變數的值交換,利用循環依次比較。要注意的是i<3,因為其中有i+1,i最大取到2,也就悶渣是i+1最大取到3才正確。
3.第三個for循環:利用循環依次輸出螞渣悄排序後的數組,每輸出一個加一個空格以便於區分。
(3)c語言用冒泡法對字母排序擴展閱讀:
冒泡排序法,從數組頭部開始,不斷比較相鄰的兩個元素的大小,通過交換兩個元素的值使較大的元素逐漸往後移動,直到數組的末尾。
經過第一輪的比較,就可以找到最大的元素,並將它移動梁燃到最後一個位置。第一輪結束後,繼續第二輪。仍然從數組頭部開始比較,讓較大的元素逐漸往後移動,直到數組的倒數第二個元素為止。
經過第二輪的比較,就可以找到次大的元素,並將它放到倒數第二個位置。
以此類推,進行 n-1(n 為數組長度)輪「冒泡」後,就可以將所有的元素都排列好。
⑷ 字元串的冒泡排序(一定要用c語言)
1、首先新建一個控制薯襪台應用程序。
⑸ C語言,26個字母的冒泡排序
從Z到A冒泡排序,按照你說梁歷正的親自寫好了
你看下滿橡悔意嗎?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void BubbleSort(char *pData, int Count)
{
int i, j, flag;
char ch;
for(i=1; i<Count; i++)
{
flag = 1;
for(j=Count-1; j >= i; j--)
{
if(pData[j] > pData[j-1])
{
flag = 0;
ch = pData[j];
pData[j] = pData[j-1];
pData[j-1] = ch;
}
}
if(flag == 1) return;
}
}
int main(void)
{
char data[] = "ACDFEYOPZNM";
int i, len;
len = strlen(data);
BubbleSort(data, len);
for(i=0; i<len; i++)
printf("%c", data[i]);
printf("爛仿\n");
return 0;
}
⑹ c語言用冒泡法選擇法從鍵盤任意輸入十個小寫字母,按從大到小的順序排序輸出。
1 輸入;
2 排序;
3 輸出。
參考代碼如下:
#include <stdio.h>
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語言 字母排列
1、該排序演算法是選擇排序演算法
2、在i位置為大寫字母時進行第二層遍歷
3、如果判斷不為大寫字母,不需要j++之後continue,否則會跳過一個字母
修改後代碼如下,修改位置注釋給出:
//1072字母排列
#include<stdio.h>
#include<string.h>
intmain()
{
chara[65];
inti,j,b,min;
gets(a);//讀取一行內容
b=strlen(a);
//冒泡排序法,i為前面的字元,j為後一個字元
for(i=0;i<b-1;i++)
{
if(a[i]<'A'||(a[i]>'Z')||a[i]=='')continue;/////judge
for(j=i+1;j<b;j++)
{
if(a[j]<'A'||(a[j]>'Z')||a[j]=='')
{
//j++;//delete
continue;
}
if(a[i]>a[j])//從小到大排序,小的排左邊,大的排右邊
{
min=a[j];
a[j]=a[i];
a[i]=min;
}
}
}
for(i=0;i<b;i++)
printf("%c",a[i]);
return0;
}
⑻ 冒泡排序法C語言解釋。
冒泡排序是一種最簡單的排序方法,通過比較相鄰的元素,若發生倒序,則交換,冊拿使最大值沉到最後。
⑼ C語言冒泡排序法是什麼
冒泡排序法,是C語言常用的排序演算法之一,意思是對一組數字進行從大到小或者從小到大排序的一種演算法。
具體方法是:
相鄰數值兩兩交換。從第一個數值開始,如果相鄰兩個數的排列順序與我們的期望不同,則將兩個數的位置進行交換(對調);如果其與我們的期望一致,則不用交換。重復這樣的過程,一直到最後沒有數值需要交換,則排序完成。
C語言常見的排序演算法:
1、冒泡排序
基本思想:比較相鄰的兩個數,如果前者比後者大,則進行交換。每一輪排序結束,選出一個未排序中最大的數放到數組後面。
2、快速排序
基本思想:選取一個基準元素,通常為數組最後一個元素(或者第一個元素)。從前向後遍歷數組,當遇到小於基準元素的元素時,把它和左邊第一個大於基準元素的元素進行交換。在利用分治策略從已經分好的兩組中分別進行以上步驟,直到排序完成。
3、直接插入排序
基本思想:和交換排序不同的是它不用進行交換操作,而是用一個臨時變數存儲當前值。當前面的元素比後面大時,先把後面的元素存入臨時變數,前面元素的值放到後面元素位置,再到最後把其值插入到合適的數組位置。
4、直接選擇排序
基本思想:依次選出數組最小的數放到數組的前面。首先從數組的第二個元素開始往後遍歷,找出最小的數放到第一個位置。再從剩下數組中找出最小的數放到第二個位置。以此類推,直到數組有序。
以上內容參考 網路-排序演算法、網路-c語言冒泡排序
⑽ C語言冒泡排序法
冒泡排序每一趟排序把最大的放在最右邊。
比如:
87 12 56 45 78
87和12交換:12 87 56 45 78
87和56交換: 56 87 45 78
87和45交換: 45 87 78
87和78交換: 78 87
到此第一趟排序結束,接下來的每一趟排序都是這樣。
#include<stdio.h>
voidPrint(int*num,intn)
{
inti;
for(i=0;i<n;i++)
printf("%d",num[i]);
puts(" ");
return;
}
voidBubble_Sort(int*num,intn)
{
inti,j;
for(i=0;i<n;i++)
{
for(j=0;i+j<n-1;j++)
{
if(num[j]>num[j+1])
{
inttemp=num[j];
num[j]=num[j+1];
num[j+1]=temp;
}
Print(num,n);
}
}
return;
}
intmain()
{
intnum[8]={87,12,56,45,78};
Bubble_Sort(num,5);
return0;
}