c語言編譯按字母排序
A. 如何用c語言給字母排序
這個其實就是排序,因為char類型跟int類型一樣的也是數字,可以比較大小的,然後輸出就可以了。
B. 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語言:將輸入的字元串按首字母順序排列。
#include<stdio.h>
#include<string.h>
void sort(char *a[]);
void print(char *a[]);
int main()
{
char *a[] ={"ceo","define","basic","abc","empty"};
printf("原來的序列是: ");
print(a);
sort(a);
printf(" 排序後的序列是: ");
print(a);
printf(" ");
return 0;
}
void sort(char *a[])
{
int i,j;
char *temp;
for(i=0;i<4;i++)//注意是i<4
{
for(j=0;j<4;j++)//注意是j<4,因為下面要+1和後面的那個字元串比較
{
if(strcmp(a[j],a[j+1])>0)//字元串比較:>0表示前面的字元串比後面的大則交換
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
}
void print(char *a[])
{
int i;
for(i=0;i<5;i++)
{
printf("%s ",a[i]);
}
}
運行效果:
(3)c語言編譯按字母排序擴展閱讀:
return 0的用法:
return的作用是結束正在運行的函數,並返回函數值。return後面可以跟一個常量,變數,或是表達式。
函數的定義一般是這樣的,例如:
inta(inti)//第一個int是函數的返回值的類型,也就是return後面跟的值的類型,a是函數的名稱,括弧里的是傳遞給函數的參數,int是參數的類型,i是參數的名字
{
...//省略函數體內容
returnb;//b必須與函數頭的返回值一致(此處為int型)
}
簡單函數舉例:
intaddOne(intb)
{
returnb+1;
}
該函數的作用是取得一個數,將這個數加上1,再將結果返回
調用時這樣:
intresult=addOne(2);//此時result的值為3
函數括弧里的參數也可以為變數或能算出值的表達式
以上就是一個基本的函數,一般的函數都有返回值,也就是return後面跟的值,返回值可以為各種數據類型,如:int,float,double,char,a[](數組),*a(指針),結構或類(c++)
但不是所有函數都有返回值,如果某個函數無返回值,那麼返回值的位置則為「void」關鍵字,此時函數體中無返回值,即無return的值。但是函數中也可出現return,即一個空的return句子,其作用是使函數立即結束,如voidprint()//括弧中為空表示無傳遞參數、
{
printf("a");
printf("b");
return;//函數執行到此處結束
printf("c");
}//該函數只執行到return語句處,即屏幕上輸出的為"ab"
D. 用c語言設計一個「字母排序顯示」程序,鍵盤輸入三個字母,運行後輸入的三字母按先大後小順序輸出。謝謝
#include<stdio.h>
intmain()
{
chara,b,c,temp;
scanf("%c%c%c",&a,&b,&c);
if(a<b)
{
temp=a;
a=b;
b=temp;
}
if(a<c)
{
temp=a;
a=c;
c=temp;
}
if(b<c)
{
temp=b;
b=c;
c=temp;
}
printf("%c%c%c ",a,b,c);
return0;
}
E. C語言字母排序問題
#include<stdio.h>
#include<string.h>/*string包含gets,puts,strlen函數*/
void main()
{
char n[500];/*定義具有五百個字元的數組n,可以根據字元串的長度適當調整*/
int i,j,x,temp;
printf("輸入n個字元串:");/*屏幕輸出"輸入n個字元串:"*/
gets(n);/*鍵盤敲入數組n*/
x=strlen(n);/*將n數組的字元長度賦給x*/
for(i=0;i<=x-1-1;i++)/*冒泡法排序:進行數組的ascii碼排序,共需進行x-1-1組排序,
0到x-1為數組n的長度x,故只需進行x-1-1組排序*/
for(j=0;j<x-1-i;j++)/*第j組排序要排序為j<x-1-i次*/
{
if(n[j]>n[j+1])/*如果這個數比下面一個數大,則這兩個數互換*/
{
temp=n[j];
n[j]=n[j+1];
n[j+1]=temp;
}
}
puts(n);/*輸出排序後的字元數組n*/
}
解釋夠詳細了吧,我在vc++6.0運行了下,可以。由於我也是學c語言不久,所以可以共同學習嘛。。。。呵呵。。。
F. C語言 輸入多個字元串並按最後一個字母排序
VC編譯,是這個意思嗎,這里輸入5個字元串,按尾字母進行排序,輸出排序後的字元串
#include<stdio.h>
#include<string.h>
#defineN5//輸入字元串的數量
voidmain()
{
charnum[N][30],order[N],temp;
inti,j,pos_temp,pos_order[N];
for(i=0;i<N;i++)
{
scanf("%s",num[i]);
order[i]=num[i][strlen(num[i])-1];
pos_order[i]=i;
}
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
{
if(strcmp(&order[i],&order[j])<0)
{
temp=order[i];
order[i]=order[j];
order[j]=temp;
pos_temp=pos_order[i];
pos_order[i]=pos_order[j];
pos_order[j]=pos_temp;
}
}
}
for(i=0;i<N;i++)printf("%s",num[pos_order[i]]);
}
G. C語言,一個字元串按字母排序
排序演算法有問題,而且,你最好確定一下你輸入字元串的長度:
#include<stdio.h>
#include<string.h>
voidmain()
{
charc[10];
inti;
intj;
inttemp;
intlength;
gets(c);
length=strlen(c);//你可能輸入不到10個字元,所以確定總共字元數
for(i=0;i<length-1;i++)//for(i=0;i<9;i++)
for(j=0;j<length-1-i;j++)//這兒問題最大for(j=0;j<9;j++)
if(c[j]>c[j+1])
{
temp=c[j];
c[j]=c[j+1];
c[j+1]=temp;
}
puts(c);
}
H. C語言字母排序
#include<stdio.h>
#include<string.h>
#define N 3
int main()
{
char a[N][20],b[20];
int i,j;
for(i=0;i<N;i++)
gets(a[i]);
for(i=0;i<N;i++) //<-------------------------------冒泡法排序
for(j=0;j<N-i;j++)
{
if(strcmp(a[j-1],a[j])>0) //<--------------------------------。
{
strcpy(b,a[j-1]); //<--------------------------------b是一維數組
strcpy(a[j-1],a[j]);
strcpy(a[j],b);
}
}
printf("After sorting:\n");
for(i=0;i<N;i++)
printf("%s\n",a[i]);
printf("\n");
return 0;
}
I. C語言怎麼對英文字母排序
根本就是.現代的英文字母就是拉丁字母
古代沒有拼音,就使用反切,就是用兩個認識會念的字,取第一個的聲母,取第二個的韻母,拼合起來就行了.
古代,中國的回族兄弟不學漢字,學習阿拉伯語,但他們用阿拉伯文的字母來拼寫口語(漢語),所以這是中國最早的拼音。
元朝,蒙古統治者用改變了的藏文的字母來拼寫漢語等語言,叫八思巴字。雖然不是專門拼寫漢語的,但是,也算漢語拼音的一種吧。
明朝,西方傳教士用拉丁字母拼寫漢語,是中國最早的拉丁字拼音。
清末明初,出現了用簡單的古字表現漢語語音的拼音方式。民國年間,政府制定了「注音字母」,就是這個系統的集中表現。現在台灣依然使用。但是,同時也出現了拉丁字的拼音運動,而且,跟左翼人士的政治運動結合很密切。
共和國成立後,立即由政府制定了「漢語拼音方案」,就是現在使用的這一套方案。聯合國也承認的。
**《現代漢語拼音方案》的出籠 **
1949年中華人民共和國成立後,就馬上著手研製拼音方案。1949年10月成立了民間團體「中國文字改革協會」,協會設立「拼音方案研究委員會」,討論拼音方案採用什麼字母的問題。
在1951年,毛澤東就指出:「文字必須改革,必須走世界文字共同的拼音方向」。但是,究竟採用什麼形式的拼音方案,他本人也是經過了反復斟酌的。毛澤東到蘇聯訪問時,他曾經問斯大林,中國的文字改革應當怎麼辦;斯大林說,中國是一個大國,可以有自己的字母。毛澤東回到北京之後,指示中國文字改革研究委員會制訂民族形式的拼音方案。同時,上海的新文字研究會停止推廣北方拉丁化新文字,等待新方案的產生。
1955年10月15日,全國文字改革會議在北京舉行。葉籟士在發言中說:「從1952年到1954年這個期間,中國文字改革研究委員會主要進行漢字筆畫式拼音方案的研究工作,經過了三年的摸索,曾經擬定幾種草案,都放在《漢語拼音方案草案初稿》(漢字筆畫式)里頭」。這次會議上印發給代表們六種拼音方案的草案,有四種是漢字筆畫式的,一種是拉丁字母式的,一種是斯拉夫字母式的。會議之後,當時的中國文字改革委員會主任吳玉章向毛澤東報告,他說,民族形式方案搞了三年,難以得到大家都滿意的設計,不如採用拉丁字母。毛澤東同意採用拉丁字母,並在中央開會通過。
在中國制定拼音方案的時候,蘇聯已經不再搞拉丁化,改為搞斯拉夫化,把所有的拉丁化民族文字一律改成了斯拉夫字母。蒙古人民共和國也把蒙古字母改成了斯拉夫字母。50年代,中國向蘇聯一邊倒,有人主張採用斯拉夫字母,跟蘇聯在文字上結盟。蘇聯派到中國的語言學家謝爾久琴柯也提出使用斯拉夫字母的建議。據說,蘇聯的一位副總理來中國訪問時,曾經向陳毅副總理說,希望中蘇兩國都採用相同的字母。陳毅副總理回答說,中國文化必須跟東亞和東南亞聯系,東亞和東南亞都習慣用拉丁字母。這樣,中國才沒有採用斯拉夫字母。如果我國當時採用了斯拉夫字母,我們今天使用計算機將會遇到更多的困難。中國政府當時在字母選擇上的決策,是非常正確的。
1956年1月20日,毛澤東在知識分子問題會議上,發表了贊成拉丁字母的講話。他說,「吳玉章同志的發言講的很好。關於文字改革的意見,我很贊成。在將來採用拉丁字母,你們贊成不贊成呀?我看,在廣大群眾里頭,問題不大;在知識分子里頭,有些問題。中國怎麼能用外國字母呢?但是,看起來還是採用這種外國字母比較好。吳玉章同志在這方面說得很有理由。因為這種字母很少,只有二十幾個,向一面寫,簡單明了。我們漢字在這方面實在比不上。比不上就比不上,不要以為漢字那麼好。有幾位教授跟我說,漢字是『世界萬國』最好的一種文字,改革不得。假使拉丁字母是中國人發明的,大概就沒有問題了。問題就出在外國人發明,中國人學習。但是,外國人發明中國人學習的事情是早已有之的。例如阿拉伯數字,我們不是久已通用了嗎?拉丁字母出在羅馬那個地方,為世界大多數國家所採用。我們用一下,是否就大有賣國的嫌疑呢?我看不見得。凡是外國好的東西,對我們有用的東西,我們就是要學,就是要統統拿過來,並且加以消化,變成自己的東西。我們中國歷史上,漢朝就是這么做的,唐朝也是這么做的。漢朝和唐朝,都是我國歷史上很有名很強盛的朝代。他們不怕吸收外國的東西,有好的東西就歡迎。只要態度和方法正確,學習外國的好東西,對自己是大有好處的。」(轉引自鄭林曦《論語說文》)。
此期間,群眾中也創制了不少的文字方案,寄到中國文字改革委員會。根據統計資料,從1950年到1955年8月31日全國文字改革工作會議為止,寄來的方案有655個,從1955年8月31日到1958年2月漢語拼音方案公布為止,寄來的方案有1000多個,從1958年2月到1980年文化大革命結束為止,寄來的方案有1667個。群眾設計的各種各樣的文字方案總共有3300多個。這種創製造文字方案的積極性,在中國文化的發展歷史上是空前的。這充分說明了語言規劃的社會性。
1955年2月,中國文字改革委員會設立了「拼音方案委員會」,開始設計漢語拼音方案,提出了《漢語拼音方案(草案)》。1956年2月12日,中國文字改革委員會發表《漢語拼音方案(草案)》,公開徵求意見。這個草案共有31個字母,其中有5個新字母(無點的i;長腳的n;帶尾的z,c,s),以便實現「一字一音」,不用變讀和雙字母。草案發表後在全國范圍內引起熱烈的討論,甚至海外華僑和留學生也提出了自己的意見。
1955年10月,國務院成立「漢語拼音方案審定委員會」,經過一年的工作,於1957年10月提出《修正草案》,11月1日由國務院全體會議第60次會議作為新的《漢語拼音方案(草案)》通過,提請全國人民代表大會審議,1958年2月11日,第一屆全國人民代表大會第五次會議正式批准《漢語拼音方案》。1958年秋季開始,《漢語拼音方案》作為小學生必修的課程進入全國小學的課堂。《漢語拼音方案》是拼寫規范化普通話的一套拼音字母和拼寫方式,是中華人民共和國的法定拼音方案。這個方案吸取了以往各種拉丁字母式拼音方案,特別是國語羅馬字和拉丁化新文字拼音方案的優點,它是我國三百多年拼音字母運動的結晶,是六十年來中國人民創造拼音方案經驗的總結,比任何歷史上一個拉丁字母式的拼音方案都更加完善和成熟。
《漢語拼音方案》有如下特點:
①只用國際通用的26個字母,不增加新字母;
②盡量不用附加符號(只用了兩個附加符號);
③盡量不用變讀;
④採用y,w和隔音符號「'」來隔音;
⑤採用四個雙字母zh, ch, sh, ng;
⑥採用四個聲調符號來表示陰平、陽平、上聲、去聲四個調類;
⑦採用拉丁字母通用的字母表順序,並確定了漢語拼音字母的名稱。
周恩來在《當前文字改革的任務》的報告中說:「現在公布的漢語拼音方案,是在過去的直音、反切以及各種拼音方案的基礎上發展出來的。從採用拉丁字母來說,它的歷史淵源遠則可以一直追溯到350多年以前,近則可以說是總結了60年來我國人民創制漢語拼音方案的經驗。這個方案,比起歷史上存在過的以及目前還在沿用的各種拉丁字母的拼音方案來,確實更加完善。」
《漢語拼音方案》自製訂以來,得到迅速的推廣和應用。主要有如下方面。
①用於給漢字注音:從1958年秋季開始,全國小學的語文課本採用漢語拼音給漢字注音,接著,中學教科書、字典、詞典以及通俗讀物、掃盲課本也採用漢語拼音注音。《人民日報》等用漢語拼音字母給難字注音。1958年10月,中央工商行政管理局和中國文字改革委員會聯合發出通知,要求各種商標圖樣和商品包裝上加註漢語拼音字母。郵電局名、鐵路站名、氣象站名、城市街道名也都使用漢語拼音標注。1982年6月19日國家標准局發布了國家標准《中文書刊名稱漢語拼寫法》,規定國內出版的中文書刊在封面、或首頁、或封底、或版權頁上加註漢語拼音書名、刊名。
②用於教學普通話:《漢語拼音方案》公布後,陸續出版了利用漢語拼音編寫的普通話教材、讀物、字表、字典、詞典,促進了普通話的推廣和普及。在對外漢語教學中,《漢語拼音方案》已經成為外國人學習漢語進行全面訓練的不可缺少的工具。
③用於字典、詞典的注音、排序,書刊的索引。75卷的《中國大網路全書》採用漢語拼音排序,正文的每一個條目都註上了漢語拼音。
④作為我國少數民族創制和改革文字的共同基礎。我國已經有壯族、苗族、侗族、哈尼族、僳僳族、佤族、黎族、納西族、土族等少數民族採用漢語拼音字母相一致的字母形式。
⑤用於不便使用或不能使用漢字的領域:《漢語拼音方案》為盲文的點字和聾啞人的手語的制定提供了依據。漢語拼音還可用於手旗通訊、燈光通信中,用同漢語拼音字母對應的手旗訊號或燈光符號來傳遞信息。在電子計算機輸入漢字方面,拼音輸入法是一種最為普及的輸入方法。
1977年,聯合國地名標准化會議決定採用《漢語拼音方案》作為拼寫中國地名的國際標准。1978年9月,國務院轉發了《關於改用漢語拼音方案作為我國人名地名羅馬字母拼寫法的統一規范的報告》。1982年8月1日,國際標准化組織(ISO)文獻工作技術委員會決議採用漢語拼音作為世界文獻工作中拼寫中國專有詞語的國際標准,標准號:ISO7098-1982。《漢語拼音方案》已經從中國標准發展成為國際標准。
漢語拼音目前還是拼寫漢字的輔助工具.
J. C語言中輸入一串字元,怎樣讓它按照字母從小到大的順序排列
這可以把字元串輸入到字元數組中,然後採用排序的方法來實現:
(需要包含<string.h>頭文件)
char t,s[200];
int i,i;
gets(s);
for(i=0;i<strlen(s)-1;i++)
for(j=0;j<strlen(s)-1-i;j++)
if(s[j]>s[j+1])
{t=s[j]; s[j]=s[j+1]; s[j+1]=t;}
puts(s);