c语言基础练习题 字符串输入scanf/gets 字符串赋值、比大小
PTA上C語(yǔ)言程序設(shè)計(jì)練習(xí)題,包含查找書籍、字符串排序。主要用到字符串輸入scanf/gets 字符串賦值、比大小等知識(shí)。
1.查找書籍
習(xí)題9-4 查找書籍 (20 分)
給定n本書的名稱和定價(jià),本題要求編寫程序,查找并輸出其中定價(jià)最高和最低的書的名稱和定價(jià)。
輸入格式:
輸入第一行給出正整數(shù)n(<10),隨后給出n本書的信息。每本書在一行中給出書名,即長(zhǎng)度不超過30的字符串,隨后一行中給出正實(shí)數(shù)價(jià)格。題目保證沒有同樣價(jià)格的書。
輸出格式:
在一行中按照“價(jià)格, 書名”的格式先后輸出價(jià)格最高和最低的書。價(jià)格保留2位小數(shù)。
輸入樣例:
3
Programming in C
21.5
Programming in VB
18.5
Programming in Delphi
25.0
結(jié)尾無空行
輸出樣例:
25.00, Programming in Delphi
18.50, Programming in VB
結(jié)尾無空行
1.1分析與代碼
首先我們讀入的東西都會(huì)被丟進(jìn)緩沖區(qū)等待接收,比如abc\n,如果你使用scanf讀入的話,它在讀入到\n的時(shí)候就會(huì)提取它需要的東西了,但是它會(huì)給你留一個(gè)\n。
那么如果現(xiàn)在你突然想用gets讀一行字符串,問題就來了。
你的\n會(huì)被當(dāng)做gets的終止讀入,然后你就讀不了了。
解決方法是:
getchar(),把這個(gè)\n給清掉。
2.字符串排序
習(xí)題8-7 字符串排序 (20 分)
本題要求編寫程序,讀入5個(gè)字符串,按由小到大的順序輸出。
輸入格式:
輸入為由空格分隔的5個(gè)非空字符串,每個(gè)字符串不包括空格、制表符、換行符等空白字符,長(zhǎng)度小于80。
輸出格式:
按照以下格式輸出排序后的結(jié)果:
After sorted:
每行一個(gè)字符串
輸入樣例:
red yellow blue green white
結(jié)尾無空行
輸出樣例:
After sorted:
blue
green
red
white
yellow
結(jié)尾無空行
2.1分析與解答
1.字符串之間,想要把b字符串賦值給a字符串,此時(shí)不能直接用等號(hào)。需要用strcpy(a,b).
2.字符串比較大小,可以用strcmp函數(shù)
strcmp(str1,str2),若str1=str2,則返回零;若str1<str2,則返回負(fù)數(shù);若str1>str2,則返回正數(shù)
總結(jié)
以上是生活随笔為你收集整理的c语言基础练习题 字符串输入scanf/gets 字符串赋值、比大小的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 临时文件_其实邮箱可能才是最佳的临时文件
- 下一篇: c++primer 3.2,3.3练习题