ASCII碼排序(c語言),ASCII碼排序(c語言)

時間 2021-08-11 17:32:29

1樓:匿名使用者

這個問題是一類典型的問題:讀取之前的回車符錯誤。

輸入函式存在乙個緩衝區,輸入函式每次都會從輸入緩衝區讀數。同時,scanf()與getchar

()函式有乙個相同的特點,就是輸入完畢必須敲回車鍵才算完成輸入。而getch(),getche()是

不需要回車鍵作為結束的。然而,只要輸入緩衝區沒有清空,所有字元包括回車都會記錄在

輸入緩衝區。如果沒有將緩衝區清空,若下次呼叫scanf()與getchar()函式讀取字元,則問

題就出現了,因為回車本身就是字元。

比如在這個程式中樓主會發現第一次輸「qwe《回車》」,答案是「e q w」,但是第二次輸

「ads《回車》」後,卻出現了「《回車》 a d」,卻沒有「s」,第三次輸入「cxz《回車》」,則

更奇怪得出現了「《回車》 c s」和「《回車》 x z」。

因為根據你的輸入依次是「qwe《回車》ads《回車》cxz《回車》」,輸入緩衝區沒有清空,每次讀

三個,將《回車》也讀入,對其進行排序難道不是這個結果嗎?

要想改對,只要加乙個fflush(stdin);清空輸入緩衝區就解決了!

看程式:

#include

int main()

if(x>z)

if(y>z)

printf("%c %c %c\n",a,b,c);

}return 0;}

2樓:匿名使用者

scanf接收乙個輸入字元,以空格、回車或tab鍵結束

3樓:

第二個結果是正確的。

4樓:

對的,樓主不要按鍵盤將字母排序

ascii碼是怎麼排序的

5樓:好程式設計師

ascii碼採用7位二進位制位元編碼,可以表示128個字元。最小的ascii碼是0000000(二進位制)專,最大的是1111111(二進位制)。

ascii碼裡邊,符號在前,然後是0-9 ,然後是大寫字母a-z,然後是小寫字母a-z。碼屬表最好能背下來

c語言程式設計:輸入三個字元後,按各字元的ascii碼從小到大的順序輸出這三個字元。

6樓:愛夏的你呀

ascii碼從小到

大的順序輸出這三個字元的源**如下:

#include<

stdio.h>

void main()

擴充套件資料找出並列印ascii碼最大的字元的源**如下#include

void main()

7樓:凌亂心扉

#include<stdio.h>

main()

{chara,b,c,d;

inti;

scanf("%d",&

i);getchar();

while(i--)

{scanf("%c%c%c",&a,&b,&c);

getchar();

if(a>b){d=a;a=b;b=d;}if(a>c){d=a;a=c;c=d;}if(b>c){d=b;b=c;c=d;}printf("%c%c%c\n",a,b,c);}}執行結果:

8樓:匿名使用者

此題的正確答案如下:

#include<stdio.h>

main()

{chara,d,c,b;

inti;

scanf("%d",&i);

getchar();

while(i--)

{scanf("%c%c%c",&a,&b,&c);

getchar();

if(a>b){d=c;a=c;b=d;}if(a>c){d=n;a=n;c=d;}if(b>c){d=n;b=n;c=d;}printf("%c%c%c\n",a,b,c);}}輸入程式

《參考執行結果》

9樓:

//這道題關鍵是把輸入3個字元後的回車過濾掉,不然回車就會成為下一組的第乙個字元。有兩種方法:

//第一種:

#include

int main()

if(a>c)

if(b>c)

printf("%c %c %c\n",a,b,c);

}return 0;

}//第二種:

#include

int main()

return 0;}

10樓:匿名使用者

public static void main(string args)}

11樓:匿名使用者

是螢幕輸入嗎?輸入結束的標誌是什麼?

#include "stdio.h"

char c1,c2,c3,tmp;

int main()

if(c1>c2)

if(c2>c3)

printf("%c %c %c",c1,c2,c3);

}return 0;

}//希望我沒有記錯東西,手邊沒編譯器就是悲劇

12樓:f皶邪蛻

#include

int main()

{char a,b,c,d,e,f;

scanf("%c%c%c",&a,&b,&c);

d=a>b?a:b;

d=d>c?d:c;

e=a,我的最簡單

13樓:匿名使用者

#include

int main()

if(a>c)

if(b>c)

printf("%c %c %c\n",a,b,c);

}return 0;}

14樓:匿名使用者

#include

int main()

if(z

}printf("%c%c%c",min,max,maxdata);

return 0;}

c語言/輸入三個字元後,按各字元的ascii碼從小到大的順序輸出這三個字元???

15樓:

輸入三個字元中要有空格,例如:a b c,我這裡用最簡單的氣泡排序實現的,直接比較兩個字元的大小,即比較兩個字元的ascii碼大小

#include

#include

int bigswap(char *a, char *b)return 0;

}int main()

}printf("%c %c %c\n",*input,*(input+1),*(input+2));

return 0;}

16樓:小草

裡邊有一百個例子,有你的例子,自己找吧。

17樓:金色潛鳥

#include

#include

main()

if (a>=c)

if (b>=c)

printf("%c %c %c",a,b,c);return 0;}

18樓:匿名使用者

直接輸入3個字元,然後比較排序就可以了,lz是不會呢還是懶得去想,就是為了交作業?

還是杭電的,c語言哪個老師教的,吳鵬,還是樓永堅還是夏一行啊?

c語言,輸入五個國家的名字(英文),按字母順序(即按ascii碼從小到大的順序)排列輸出

19樓:匿名使用者

#include

#include

#include

typedef struct

c;c raw[5];

c *p[5];

int main()

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

for(j=0;j<4-i;j++)

}printf("\nthe sort countries:\n");

/*迴圈輸出*/

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

printf("%s\n",p[i]->cou);

system("pause");

return 0;}

(c語言)輸入三個字元後,按各字元的ascii碼從小到大的順序輸出這三個字元

20樓:凌亂心扉

#include"stdio.h"

charmax(chara,charb)

{if(a>b)

{returna;

}else

{returnb;}}

charmin(chara,charb)

{if(a<b)

{returna;

}else

{returnb;}}

intmain(intargc,charconst*argv[])

{charc0,c1,c2,c3,c4,c5,c6,c7;

printf("pleaseinputnum:\n");

scanf("%c%c%c",&c0,&c1,&c2);

c3=max(c0,c1);

c4=max(c3,c2);

c5=min(c0,c1);

c6=min(c5,c2);

c7=c0+c1+c2-c4-c6;

printf("%c%c%c\n",c4,c7,c6);

return0;

}printf()用法:

printf()函式是格式化輸出函式,一般用於向標準輸出裝置按規定格式輸出資訊。在編寫程式時經常會用到此函式。函式的原型為:

int printf(const char*format,...);函式返回值為整型。若成功則返回輸出的字元數,輸出出錯則返回負值。

printf()函式的呼叫格式為:

printf("《格式化字串》;",《參量表》);其中格式化字串包括兩部分內容:

一部分是正常字元,這些字元將按原樣輸出;

另一部分是格式化規定字元,以"%"開始,後跟乙個或幾個規定字元,用來確定輸出內容格式。

參量表是需要輸出的一系列引數,其個數必須與格式化字串所說明的輸出;引數個數一樣多,各引數之間用","分開,且順序一一對應,否則將會出現意想不到的錯誤。

規定符%d十進位制有符號整數

%u十進位制無符號整數

%f浮點數

%s字串

%c單個字元

%p指標的值

%e指數形式的浮點數

%x,%x無符號以十六進製制表示的整數

%o無符號以八進位制表示的整數

%g把輸出的值按照%e或者%f型別中輸出長度較小的方式輸出

%p輸出位址符

%lu 32位無符號整數

%llu 64位無符號整數

21樓:匿名使用者

#include

int main()

{char a,b,c;

加個空格,

第二個也一樣

{if((a

22樓:匿名使用者

最簡單的方法

:#include

int main()

if(b>c)

if(a>b)

printf("%c %c %c\n",a,b,c);

}return 0;}

23樓:小明五個字

兩個程式在scanf**調一下,看一看a,b,c的值

24樓:匿名使用者

直接除錯吧,很明顯的錯誤,c還是你需要的輸入的資料嗎

25樓:匿名使用者

敢不敢用排序演算法拍個序 感覺很老火

26樓:富嬌韋曉山

#include

void

main()

if(p>s)if(q>s)printf("%c%c%c\n",a,b,c);}

27樓:謬歌東郭飛薇

你輸入的是4個字元啊,輸出卻只有3個字元

28樓:姓元郗海藍

#include

intmain()}

29樓:沙蝶閻錦

從鍵盤輸入乙個字元,求出與該字元前後相鄰的兩個字元,按從小到大的

順序輸出這三個字元的ascii

30樓:符念樊湘雲

隨便寫的:

static

void

main(string

args)

if(s[0]

>s[1])

if(s[1]

>s[2])

if(s[0]

>s[1])

console.writeline(s);

console.readline();

檢視原帖》

c語言 按ascii碼排序 求教大神

31樓:匿名使用者

總得思想還是冒泡排

序,改良一下就可以了。

#include

#include

#include

int main(void)

else if(a[loop] >= 'a' && a[loop] <= 'z') //大寫字母

else if(a[loop] >= '0' && a[loop] <= '9') //數字

else //啥也不是

for(loop1 = loop + 1; loop1 < len; loop1++)

}else

}else if(flag == 2)

}else

}else

}else}}

}printf("%s\n", a);

return 0;}

c 語言中怎麼將字母轉換為ascii碼

小小小小顰 具體操作步驟如下 1 首先,定義兩個整數變數a和a,並儲存相應字母的ascii碼,如下圖所示,然後進入下一步。2 其次,定義乙個字元變數ch以儲存要轉換的字元。如下圖所示,然後進入下一步。3 接著,為字元變數ch分配乙個初始值,並返回給小寫的母親a,如下圖所示,然後進入下一步。4 然後,...

c語言,怎麼輸入ASCII碼?也就是怎麼輸入8位二進位制數

好像沒有直接輸入二進位制,不過可以先以輸入的二進位制當成十進位制看待,然後再轉換成實際的十進位制數。include stdio.h include math.h void main int a,c,sum,i scanf d a i 0 sum 0 while a 0 c a 10 sum c in...

C語言 ASCII碼前控制字元的含義

空字元0000 0001 1 01 soh start of handing 標題開始 0000 0010 2 02 stx start of text 正文開始 0000 0011 3 03 etx end of text 正文結束 0000 0100 4 04 eot end of transm...